| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 916 人关注过本帖
标题:为什么我这个for循环不起来呀。
只看楼主 加入收藏
Adm〃h
Rank: 2
等 级:论坛游民
帖 子:26
专家分:18
注 册:2012-3-26
结帖率:83.33%
收藏
已结贴  问题点数:5 回复次数:10 
为什么我这个for循环不起来呀。
#include <stdio.h>
void main()
{
    char k;
    int i;
    for (i=1;i<3;i++)
    {
        scanf("%c",&k);
        switch(k)
        {
            case '0': printf("another\n");           
            case '1': printf("number\n");
            }
        }
    }

按道理说我应该可以输入2次k的值,但是实际上我只输入了一次,程序就终止了。
搜索更多相关主题的帖子: void include 
2012-04-19 20:13
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:1 
清缓冲区,把回车读进去了

总有那身价贱的人给作业贴回复完整的代码
2012-04-19 20:59
haha11
Rank: 1
等 级:新手上路
帖 子:13
专家分:5
注 册:2012-4-14
收藏
得分:1 
你输入的是整型,不能用字符串变量来接受你输入的数据
#include <stdio.h>
int main(void)
{
    int k;
    int i;
    for (i=1;i<3;i++)
    {
        scanf("%d",&k);
        switch(k)
        {
            case 0:
                printf("another\n");
                break;
            case 1:
                printf("number\n");
                break;
         }
    }
 return 0;
}


这样就OK了
2012-04-19 21:07
羽墨离殇
Rank: 2
等 级:论坛游民
帖 子:13
专家分:11
注 册:2012-3-10
收藏
得分:1 
#include <stdio.h>
void  main()
{
    char k;
    int i;

    for (i=1;i<3;i++)
    {
       scanf("%c%*c",&k);
        switch(k)
        {
            case '0':
            printf("another\n");
            break;
            case '1':
            printf("number\n");
            break ;
        }
    }
}
我改了一下,你看看吧!
2012-04-19 21:10
GUnever
Rank: 2
等 级:论坛游民
帖 子:59
专家分:25
注 册:2012-3-3
收藏
得分:1 
你直接在Scanf后面加一个getchar(); 就行了 来吸收回车字符  或者在scanf前面加一个 fflush(stdin);  就可以了
2012-04-19 21:10
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:1 
scanf(" %c",&k);改成这样就可以了,%c前加一个空格

最基础的往往是你最容易忽略的!
2012-04-19 21:40
Adm〃h
Rank: 2
等 级:论坛游民
帖 子:26
专家分:18
注 册:2012-3-26
收藏
得分:0 
回复 2楼 embed_xuel
请问大侠,如何清除缓存区。

当一个问题思考许久后却还是不得其解时 我会去睡一觉或出去走走之后我可能会灵感爆发。
2012-04-19 21:50
Adm〃h
Rank: 2
等 级:论坛游民
帖 子:26
专家分:18
注 册:2012-3-26
收藏
得分:0 
回复 6楼 于祥
请问%c前面加空格的原理。

当一个问题思考许久后却还是不得其解时 我会去睡一觉或出去走走之后我可能会灵感爆发。
2012-04-19 21:50
moonnight
Rank: 5Rank: 5
等 级:职业侠客
帖 子:158
专家分:380
注 册:2012-3-17
收藏
得分:1 
在scanf("%c",&k)后面加一句getchar();也可以
 
2012-04-19 21:57
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:0 
回复 8楼 Adm〃h
书上这样说的,有两个连续的scanf()时(且第二个scanf()用来输入字符),用scanf(" %c",&c);这样的格式来避免读入回车,具体的我也不太懂,问问其他大师吧!

最基础的往往是你最容易忽略的!
2012-04-19 21:58
快速回复:为什么我这个for循环不起来呀。
数据加载中...
 
   



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

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