永发信息网

c语言问题求救,为什么总是=131

答案:4  悬赏:20  手机版
解决时间 2021-05-03 11:02
  • 提问者网友:孤山下
  • 2021-05-02 11:30
#include "stdio.h"
void main()
{int gcd(int a,int b);
int r,a,b,temp,m;
scanf("%d,%d",&a,&b);
if(a<b)
{temp=a;
a=b;
b=temp;
}
r=a%b;
if(r=0)
printf("%d",b);
for(;r!=0;)
{ m=r;
r=gcd(b,r);}
printf("%d",m);
}
int gcd(int a,int b)
{
int c;
c=a%b;
return c;
}
最佳答案
  • 五星知识达人网友:时间的尘埃
  • 2021-05-02 11:54

if(r==0) 不是 r=0


for循环里 b的值没有更新


#include "stdio.h"
void main()
{
int gcd(int a,int b);
int r,a,b,temp,m=0;
scanf("%d,%d",&a,&b);
if(a<b)
{
temp=a;
a=b;
b=temp;
}
r=a%b;
if(r==0)
printf("%d",b);
else{
for(;r!=0;)
{
m=r;
r=gcd(b,r);
b = r;
}
printf("%d",m);
}

}
int gcd(int a,int b)
{
int c;
c=a%b;
return c;
}

全部回答
  • 1楼网友:北方的南先生
  • 2021-05-02 14:53

#include "stdio.h" void main() {int gcd(int a,int b); int r,a,b,temp,m; scanf("%d,%d",&a,&b); if(a<b) {temp=a; a=b; b=temp; } r=a%b; if(r=0) printf("%d",b); for(;r!=0;) { m=r; r=gcd(b,r);} printf("%d",m); } int gcd(int a,int b) { int c; c=a%b; return c; }

  • 2楼网友:鱼忧
  • 2021-05-02 14:10

#include "stdio.h" void main() { int gcd(int a,int b); int r,a,b,temp,m;

scanf("%d,%d",&a,&b); //输入要以逗号分隔.

if(a<b) { temp=a; a=b; b=temp; }

r=a%b; if( r == 0 ) //判断相等用== printf("%d",b); else //加个else 当r不等于0时才执行这段代码. { for(;r!=0;) { m=r; r=gcd(b,r); } printf("%d",m); } } int gcd(int a,int b) { int c; c=a%b; return c; }

  • 3楼网友:独行浪子会拥风
  • 2021-05-02 12:35

看你程序的意思是要求最小公因数了,记得我们学的时候也做过,你试试我这个程序吧

#include"stdio.h"

void main()

{int a,b,c;

printf("请输入数据:");

scanf("%d%d",&a,&b);

c=a%b;

if(c==0)

printf("最小公因数是%d\n",c);

for(;c!=0;)

{a=b;

b=c;

c=a%b;

}

printf("最小公因数是%d\n",b);

}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯