프로젝트를 수행하려고하는데 막혔습니다. 교수님은 제가 이해한다면 동적 배열을 사용하고, 정수를 비교하여 GCD를 얻는 기능을 원합니다. 나는 기능을 작동하게 할 수 없다. 이견있는 사람? 여기에 prom :동적 배열 및 함수
유한 정수 집합의 가장 큰 공약수를 계산하는 프로그램을 작성하십시오. 함수를 사용하여 GCD를 계산하십시오. 세트의 요소 수는 미리 결정되어서는 안됩니다. 데이터를 입력 할 때 카운트 할 코드, 세트에있는 숫자의 수를 작성해야합니다. 유클리드 알고리즘을 기본으로합니다. ;
I 입력 10, 100, 40 및 GCD는 10해야하지만, 나는이 결과를 얻을 :
The GCD of: is:
10 0
100 0
40 0
#include <iostream>
#include<iomanip>
using namespace std;
int greatestdivisor(int b[], int size); /*Write prototype for gcd */
int main()
{
int greatest;
int max=1;
int* a= new int[max]; //allocated on heap
int n=0;
cout<<"Input numbers: "<<endl;
cout<<"Hit Enter key after each input and type any letter to finish"<<endl;
while(cin>>a[n]){ //read into array
n++;
if(n>=max){
max=n; //increase size of array
int* temp = new int[max]; //creates new bigger array
for(int i=0;i<n;i++){
temp[i] = a[i]; //copy values to new array
} //end for
delete [] a; //free old array memory
a = temp; //a points to new array
} //end if
} // end while
cout<<endl;
greatest = greatestdivisor(a, max);
cout<<"The GCD of: "<<" is: "<<endl;
for(int j=0;j<max;j++)
cout<<setw(5)<<a[j]<<setw(10)<<greatest<<endl;
n++;// prints elements of array and call function
} // end main
// gcd finds greatest common divisor of array
int greatestdivisor(int b[], int size)
{
int greatest =1;// current greatest common divisor, 1 is minimum
for (int x=0; x<=size; x++) {
int m=b[x];
int r=2;
if(m%r==0){
greatest =m; // update greatest common divisor
} //end if
} // end for
return greatest; //return gcd
} // end fuction gcd
처럼 뭔가 단순화'나는 기능이 작동하게 캔트.'프로그램에 무엇이 잘못 되었습니까? 자세한 내용을 제공해주십시오. – user657267
실행할 때 잘못된 정보가 표시됩니다. 그것은 내가 입력 한 데이터와 함께 10을 표시해야합니다. – Meeeeee
gcd 알고리즘으로 촬영하는 경우'maximumdivisor' 함수가별로 도움이되지 않는 것 같습니다. 테스트 조건은'x
WhozCraig