标题:为什么getchar()没用了?
取消只看楼主
zh77
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:84
专家分:22
注 册:2011-8-5
结帖率:100%
已结贴  问题点数:4 回复次数:4 
为什么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
请按任意键继续. . .
*/
搜索更多相关主题的帖子: include 公倍数 公约数 
2011-08-18 13:32
zh77
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:84
专家分:22
注 册:2011-8-5
得分:0 
回复 2楼 waterstar
不是的 我是把scanf注释掉以后用getchar() 发现getchar()不能读入字符  就是说 不能循环了  
2011-08-18 17:31
zh77
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:84
专家分:22
注 册:2011-8-5
得分:0 
回复 6楼 daa20
C里面是可以用的  C++不可以
2011-08-19 00:37
zh77
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:84
专家分:22
注 册:2011-8-5
得分:0 
回复 7楼 daa20
getchar()只能得到一个字符吧  怎么可能得到字符串 不管你怎么输入 应该只能得到一个字符 不然gets()岂不是成了废物?  看了别人的回复 我感觉是上面个scanf 遗留下的东西  我调试下
2011-08-19 00:39
zh77
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:84
专家分:22
注 册:2011-8-5
得分:0 
回复 楼主 zh77
先谢谢 大家了 我调试下
2011-08-19 00:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-347846-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.062652 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved