为什么getchar()没用了?
/*2011年8月18日12:15:58求两个整数的最大公约数和最小公倍数
*/
# include <stdio.h>
int main(void)
{
int f1(int ,int);
int f2(int ,int);
int a, b, c, d;
char ch;
do
{
printf("请输入两个整数: ");
scanf("%d %d", &a, &b);
c = f1(a, b);
d = f2(a, b);
printf("最大公约数为: %d\n最小公倍数为: %d\n", c, d);
printf("是否继续?(y/n)\n");
scanf(" %c",&ch);
// ch = getchar();//如果把上面的scanf注释掉 用这一行的getchar()就没用那个判断循环的效果 为什么呢?求大虾解释,O(∩_∩)O谢谢!
} while (ch == 'y');
system("pause");
return 0;
}
int f1(int a, int b)
{
int i;
for (i=a; i>0; i--)
{
if (a%i == 0)
{
if (b%i == 0)
{
return i;
}
}
}
}
int f2(int a, int b)
{
int i;
for (i=a;; i++)
{
if (i%a == 0)
{
if (i%b == 0)
{
return i;
}
}
}
}
/*在VC++6.0中的输出结果:
请输入两个整数: 2 4
最大公约数为: 2
最小公倍数为: 4
是否继续?(y/n)
y
请输入两个整数: 2 3
最大公约数为: 1
最小公倍数为: 6
是否继续?(y/n)
n
请按任意键继续. . .
*/