繁体   English   中英

使用C中的数组查找GCD

[英]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 你需要声明An你读元素的数量之后元素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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM