|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- int max(int a,int b);
- int min(int a,int b);
- int main(){
- int a,b;
- printf("请输入两个整数:");
- scanf("%d,%d",&a,&b);
- printf("%d和%d之间的最大公约数是:%d\n", a, b, max(a, b));
- printf("%d和%d之间的最小公倍数是:%d\n", a, b, min(a, b));
- }
- int max(int a,int b){
- int num = 0;
- while(b!=0){
- num = a%b;
- a = b;
- b = num;
- }
- return a;
- }
- int min(int a,int b){
- return a*b / max(a,b);
- }
复制代码
输出是
请输入两个整数:4 8
4和16之间的最大公约数是:4
4和16之间的最小公倍数是:16
这关16什么事,错在哪了
问题在于scanf函数中的格式化字符串。在这里,你使用了"%d,%d"来读取两个整数,这意味着你的输入应该是"4,8"而不是"4 8"。逗号在输入中是必需的,因为你在scanf函数中使用了"%d,%d"。所以,你需要将输入改为"4,8",然后你的程序应该能够正确输出最大公约数和最小公倍数。
修改后的输入应该是:
请输入两个整数:4,8
然后输出应该是:
4和8之间的最大公约数是:4
4和8之间的最小公倍数是:8
|
|