为什么作业提交网站的输出与Visual Studio不同

Why is the output of the homework submitting website different from Visual Studio?

本文关键字:Visual Studio 不同 输出 作业 提交 网站 为什么      更新时间:2023-10-16

所以我创建了一个程序来找出五个数字的最大公约数。

当我使用visual studio时,输出很好,但在线系统上的输出变得疯狂。

就像在程序中输入12、24、8、36、100一样,输出将是32758。

有人能回答我吗?

#include<iostream>
using namespace std;
const int LEN = 5;
int x = 0;
// TODO 1: Complete the function declaration of GCD(), takes 2 interger as parameter.
int GCD(int n1, int n2) {
for (int i = 1; i <= n1 && i <= n2; i++) {
if (n1 % i == 0 && n2 % i == 0) {
x = i;
}
}
return x;
}
// TODO 2: Complete the function implementation, return the GCD of 2 given number 
int main() {
int Num[LEN];
int answer;
int gcd[4], y, z;
cout << "Enter " << LEN << " numbers:" << endl;
for (int i = 0; i < LEN; i++)
cin >> Num[i];
cout << "GCD:" << endl;
for (int i = 1; i < LEN; i++) {
gcd[i - 1] = GCD(Num[i - 1], Num[i]);
}
for (z = 3; z >= 0; z--) {
if (gcd[z] < gcd[z - 1]) {
y = gcd[z];
gcd[z] = gcd[z - 1];
gcd[z - 1] = y;
}
}
answer = gcd[0];
cout << answer << endl;
return 0;
}

在线系统上的输出

您应该这样计算gcd,而不是每两个连续的数字。

answer = Num[0];
for (int i = 1; i < LEN; i++)
answer = GCD(answer, Num[i]);
cout << answer << endl;