求助!
#include <stdio.h>int max(int a,int b);
int min(int a,int b);
int main(){
int a,b;
printf("请输入两个整数:");
scanf("a=%d,b=%d",&a,&b);
max(a,b);
min(a,b);
}
int max(int a,int b){
if(a>b){
int sum=b;
b = a;
a = sum;
}
for(int i=a;i>0;i--){
if(b%i==0){
printf("%d和%d之间的最大公约数是:%d\n",a,b,i);
break;
}
}
}
int min(int a,int b){
if(a>b){
int sum=b;
b = a;
a = sum;
}
int sum=1;
while(sum){
if((b*sum)%a==0){
printf("%d和%d之间的最小公倍数是:%d\n",a,b,b*sum);
break;
}
sum++;
}
}
问题:求最大公约数和最小公倍数
没有输出 问题出在 scanf 函数的参数上。应该使用 "%d,%d" 而不是 "a=%d,b=%d"。这样修改后,程序就能正确读取输入的两个整数了。
#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);// 修改这里
max(a,b);
min(a,b);
}
int max(int a,int b){
if(a>b){
int sum=b;
b = a;
a = sum;
}
for(int i=a;i>0;i--){
if(b%i==0){
printf("%d和%d之间的最大公约数是:%d\n",a,b,i);
break;
}
}
}
int min(int a,int b){
if(a>b){
int sum=b;
b = a;
a = sum;
}
int sum=1;
while(sum){
if((b*sum)%a==0){
printf("%d和%d之间的最小公倍数是:%d\n",a,b,b*sum);
break;
}
sum++;
}
}
页:
[1]