gpt4 book ai didi

c++ - 动态数组和函数

转载 作者:太空宇宙 更新时间:2023-11-04 16:12:40 25 4
gpt4 key购买 nike

<分区>

我正在尝试做我的项目,但我被卡住了。如果我理解的话,我的教授希望我使用一个动态数组,以及一个比较整数并获取它们的 GCD 的函数。我无法使该功能正常工作。有什么想法吗?这是舞会:

编写一个程序来计算任何有限整数集的最大公约数。使用函数计算 GCD。集合中元素的数量不应预先确定。您需要编写代码来计算,当您输入数据时,集合中有多少个数字。基本在欧几里得算法左右。

我输入了 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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com