[英]Finding GCD using arrays in C
嗨,我正在尝试用C语言编写代码,以查找2个以上数字的GCD。 但是,当我编译并运行代码时,GCD始终为0。如果有人可以提供帮助,我们将不胜感激。 谢谢。
#include <stdio.h>
static int gcd(int x, int y)
{
int r;
if (x <= 0 || y <= 0)
return 0;
while ((r = x % y) != 0)
{
x = y;
y = r;
}
return y;
}
int main (void)
{
int A[5];
int g = A[0];
int i;
int n;
printf ("How many elements are there? \n")
scanf ("%d", &n);
printf ("Input the elements. \n");
for (i = 0; i < n; i++)
{
scanf ("%d", &A[i]);
}
for (i = 1; i < n; i++)
g = gcd(g, A[i]);
printf ("GCD is: %d \n");
return 0;
}
您可以设置g
等于A[0]
您之前设置A[0]
任何特定的值。
你需要一个;
在第一个printf
。 你需要声明A
与n
你读元素的数量之后元素n
。 您必须在最后一个printf
",
之后",
写上g
。
我认为您的主体应该是这样的:
int main (void)
{
int i;
int n;
printf ("How many elements are there? \n");
scanf ("%d", &n);
int A[n];
printf ("Input the elements. \n");
for (i = 0; i < n; i++)
{
scanf ("%d", &A[i]);
}
int g = A[0];
for (i = 1; i < n; i++)
g = gcd(g, A[i]);
printf ("GCD is: %d", g);
return 0;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.