首页 新闻 赞助 找找看

一道关于C语言的习题(不明白自己为什么错,oj提示wrong answer)

0
悬赏园豆:10 [已解决问题] 解决于 2019-10-16 20:04

问题:输入两个正整数,以空格隔开,求最大公约数和最小公倍数,答案保证在int范围内

include<stdio.h>

int main(void)
{int a,b,t,mult;
char ch;
scanf("%d%c%d",&a,&ch,&b);//自己想的是把空格的值赋值给ch
mult=ab;
if(a<b)
{a=t;
a=b;
b=t;
}
while(b!=0) //求最大公约数
{t=a%b;
a=b;
b=t;
}
printf("%d\n",a);
printf("%d\n",mult/a);//最小公倍数==(a
b)/最大公约数
return 0;
}

Fate-Joker的主页 Fate-Joker | 初学一级 | 园豆:158
提问于:2019-10-15 10:26
< >
分享
最佳答案
1

楼主看看这个,流程图+代码(在C语言中用scanf,在C++中用scanf_s,无关紧要)

include<stdio.h>

include <stdlib.h>

int main()
{
int m,n,a,b,t,temp,h;
printf("输入m和n\n");
scanf_s("%d%d", &m, &n);
a=m;b=n;
if(a<b)
{
t=a;a=b;b=t;
}
while(b!=0) //求最大公约数
{
temp=a%b;a=b;b=temp;
}
h=m*n/a;//求最小公倍数
printf("%d和%d的最大公约数是:%d\n",m,n,a);
printf("%d和%d的最小公倍数是:%d\n",m,n,h);
system("pause");
}

收获园豆:10
熊泽-学习中的苦与乐 | 老鸟四级 |园豆:2267 | 2019-10-15 11:26

emmm,我写的代码用的思想几乎跟你这个相似,自己输入一些数,得到的结果也和预想的一样,但oj
就是不认同,我不知道错出在哪里....

Fate-Joker | 园豆:158 (初学一级) | 2019-10-15 19:28

我找到我的问题了,判断大小事,应该把a的值赋给t,而我写成了a=t.....谢谢了,大神!看了你的图,理解又加深了!!1

Fate-Joker | 园豆:158 (初学一级) | 2019-10-16 20:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册