| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
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 
 
 
 |   
 
 
 
 |