题目:给定两个正整数,求最大公约数
代码如下
#include<stdio.h>
int maxGcd(int max,int min)
{
int temp;
while(min != 0)
{
temp = max % min;
max = min;
min = temp;
}
return max;
}
int main(void)
{
int num1,num2,yue,bei;
printf("Enter two numbers:\n");
scanf("%d%d",&num1,&num2);
if(num1 > num2)
{
yue=maxGcd(num1,num2);
bei=num1*num2/yue;
}
else
{
yue=maxGcd(num2,num1);
bei=num1*num2/yue;
}
printf("yue=%d\n",yue);
printf("bei=%d\n",bei);
return 0;
}
输出:
改变代码,如下:
#include<stdio.h>
int maxGcd(int max,int min)
{
int temp;
while(min != 0)
{
temp = max % min;
max = min;
min = temp;
}
return max;
}
int main(void)
{
int num1,num2,yue,bei;
printf("Enter two numbers:\n");
scanf("%d%d\n",&num1,&num2);
if(num1 > num2)
{
yue=maxGcd(num1,num2);
bei=num1*num2/yue;
}
else
{
yue=maxGcd(num2,num1);
bei=num1*num2/yue;
}
printf("yue=%d\n",yue);
printf("bei=%d\n",bei);
return 0;
}
运行结果如下:
可以看到,没有正确输出,这是因为第二次在scanf函数那里加了一个\n,此时想要正确输出,可以任意敲一个字符,得到输出,如图
这与scanf的输入有关,具体的我也不懂,但是暂且先记住不要犯这个小错误哈~
欢迎大佬指教,不胜感谢(❁´ω`❁)