注册 登录
编程论坛 C语言论坛

求助 循环体哪出问题了

几个一 发布于 2020-11-27 19:41, 1504 次点击
#include<stdio.h>
int main()
{
int t,i,n,r;
scanf("%d%d",&i,&n);
if(i<n)
{
t=i;
i=n;
n=t;
}
if(n==0)
printf("%d",i);
else
{
for(r=i%n;r!=0;)
{
r=i%n;
i=n;
n=r;
}
printf("%d",i);
}
  
}
题目:  输入两个不大于10的9次方的正整数,输出其最大公约数。
在系统上运行后错误  为什么?
这是错误说明========[data7.out]=========
Expected                              |    Yours
100000
                                  /    1000000

==============================
time_space_table:
/1062/data6.in: mem=1044k time=0ms
/1062/data1.in: mem=1044k time=0ms
/1062/data5.in: mem=1044k time=0ms
/1062/data7.in: mem=1044k time=0ms
3 回复
#2
rjsp2020-11-27 19:56
随便举个例子,输入 100 和 10
#3
rjsp2020-11-27 20:08
还有,你代码中无用部分太多了

以下是我在手机上手打,可能有误,仅供参考
程序代码:
#include <stdio.h>

int main( void )
{
    unsigned a, b;
    scanf( "%u%u", &a, &b );

    for( ; b!=0; )
    {
        unsigned t = a%b;
        a = b;
        b = t;
    }
    printf( "%u", a );
}
#4
几个一2020-11-27 21:34
谢谢楼上
1