可以帮我看看这段代码出了什么问题吗

可以帮我看看这段代码出了什么问题吗

1 个回答

woistyz891080

提问:可以帮我看看这段代码出了什么问题吗

补充 : 谢谢大家的帮助!已解决其实问题就是没有调用函数,另外还要把int gcd(int a,int b,int c) 和int gcd(int a,int b,int temp)改成如下形式最重要的是!!!没有调用函数!!把printf("%d\n",c);改成printf("%d\n",lcm(a,b));就可以了#include<stdio.h> int gcd(int a,int b) { int temp; while(b!=0) { temp=b; b=a%b; a=temp; } } int lcm(int a,int b) { int c; c=a/gcd(a,b)*b; } void main() { int temp; int a,b,c; while(~scanf("%d%d",&a,&b))​ { printf("the minnest common factor of %d and %d is ",a,b); printf("%d\n",lcm(a,b)); getchar(); } }

网友回答:

在你程序基础上改好的

#include <stdio.h>
int gcd(int a, int b)
{
   int temp; //临时变量放入函数中定义
   ///网上的公倍数算法都是互相抄的
   ///辗转相除法不用交换大小值的
   while(b != 0)
   {
       temp = a % b;
       a=b;
       b = temp;
   }
   return a;
}
int lcm(int a, int b)
{
   int c; //非指针变量作为参数是不能改变其值的
   c = a / gcd(a, b) * b;
   return c; //所以必须用return返回
}
int main() //ISO C从未有过void main()的写法,也是相互抄的结果
{
 //  int temp;
   int a, b; //, c;
   while(~scanf("%d%d", &a, &b))
   {
       printf("the minnest common factor of %d and %d is ", a,b);
       printf("%d\n", lcm(a,b));
      // getchar(); 这里不用也不能有getchar()的
      // getchar();
   }
   getchar(); //可放在这里
   return 0;
}

测试结果(你程序支持多组输入,直到EOF)


  • 1 关注
  • 0 收藏, 浏览
  • 提出于

相似问题