标题:我不知道为什么进不了循环
只看楼主
王思源
Rank: 1
等 级:新手上路
帖 子:33
专家分:1
注 册:2012-9-16
得分:0 
回复 9楼 hfhf2006
不行啊 这个题目是要先输入一个数据表示这么多次询问,但是这里的数输不进去,就是没有循环啊,第一个数字没有被当成要做多少次,而是当成了火车的号码。
2012-11-08 14:48
lsxlong123
Rank: 2
等 级:论坛游民
帖 子:21
专家分:16
注 册:2012-7-24
得分:0 
学习。。。
2012-11-08 14:50
han1115
Rank: 2
等 级:论坛游民
帖 子:15
专家分:20
注 册:2012-8-11
得分:3 
循环进入了,问题出在getchar。他接手了 赋值m的回车。进入循环应该先用while(c=getchar()!='\n') continue;这个命令吸收掉scanf的剩余输入。
2012-11-08 14:55
han1115
Rank: 2
等 级:论坛游民
帖 子:15
专家分:20
注 册:2012-8-11
得分:2 
for(i=1;i<=m;i++)//我的问题是为什么进不去循环啊
    {
        while(
              (getchar())!='\n')//吸收剩余的输入。
              continue;  
        getchar(c);这个改为c=getchar();
        switch(c)
        {
           case 'K':printf("Rapid");break;
           case 'T':case 'Q':printf("Express");break;
           case 'Z':printf("SuperExpress");break;
           case 'D':printf("EMUExpress");break;
           case 'G':case 'C':printf("HighSpeed");break;

           case '1':case '2':case '3':case '4':case '5':case '6':printf("Semi-fast"); break;
           default:printf("Local");
        }
        
    }
    return 0;
}
2012-11-08 14:59
龙航四海
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:58
专家分:102
注 册:2012-10-17
得分:2 
#include<stdio.h>
 main(int argc, char* argv[])
 {   
     int m,i;
     char c;
     scanf("%d",&m);
 
    for(i=1;i<=m;i++)//我的问题是为什么进不去循环啊
     {
        while((c=getchar())=='\n');
         switch(c)
         {
            case 'K':printf("Rapid");break;
            case 'T':case 'Q':printf("Express");break;
            case 'Z':printf("SuperExpress");break;
            case 'D':printf("EMUExpress");break;
            case 'G':case 'C':printf("HighSpeed");break;
 
           case '1':case '2':case '3':case '4':case '5':case '6':printf("Semi-fast"); break;
            default:printf("Local");
         }
         
     }
     return 0;
 }
我在循环开始加了一条while语句,消除了回车的问题,希望能对你有用。
2012-11-08 15:49
王思源
Rank: 1
等 级:新手上路
帖 子:33
专家分:1
注 册:2012-9-16
得分:0 
嗯大致懂了 谢谢 不过我不怎么懂 getchar(c)和c=getchar()有什么区别呢?
2012-11-08 23:50
hejian11
Rank: 2
等 级:论坛游民
帖 子:35
专家分:49
注 册:2012-10-23
得分:0 
回复 10楼 王思源
就是如果你没用FFLUSH的话,回车会作为一个输入,而不是区分当前输入结束的标志!understand?赶紧的给分,最受不了不给分的!还在纠结这个问题,百度一下scanf和fflush以及C中缓存的一些知识!那个讲的更清楚!
2012-11-09 09:52
王思源
Rank: 1
等 级:新手上路
帖 子:33
专家分:1
注 册:2012-9-16
得分:0 
回复 17楼 hejian11
不会不给分的  
2012-11-09 23:10



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




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

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