| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 751 人关注过本帖
标题:while 的问题,老师们帮我看一下,错在哪里了?我是初学
取消只看楼主 加入收藏
竺洪平
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-7-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
while 的问题,老师们帮我看一下,错在哪里了?我是初学
#include "stdio.h"
main()
{
    int s1;
    char s2;
    char s3;
        s3='y';
    while (s3!='n')
    {
    printf("\n input chengji: ");
    scanf ("%d",&s1);
    if (s1<60) s2='E';
    else if(s1<70) s2='D';
    else if (s1<80) s2='c';
    else if (s1<90)  s2='B';
    else s2='A';
    printf("it is %c\n",s2);
    printf("if it not needs go on>input: n \n");
    scanf("%c",&s3);
    printf("s3=%c\n",s3);
    }
printf("end!\n");
}

发现:    scanf("%c",&s3); 没被执行,不知道为什么?变为死loop了
搜索更多相关主题的帖子: include 
2012-07-27 10:58
竺洪平
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-7-21
收藏
得分:0 
谢谢!
2012-07-27 11:57
竺洪平
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-7-21
收藏
得分:0 
还不是十分明白,为什么要清缓存?
我在开始,已有: s3='y';s3已有初值,而
scanf("%c",&s3);是刚从键盘上输入的数据,此数据先被读到缓存,再交给s3,
这样应该是不管原来缓存中的数据是什么,它都应该被刚从键盘上输入的数据刷新,
反之,难道在每句scanf()前都要加getchar()了吗?
请高手解答
2012-07-27 13:51
竺洪平
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-7-21
收藏
得分:0 
以下是引用LShang在2012-7-27 14:08:29的发言:

 
不是的,
你在scanf("%c",&s3);后边加一句printf("%d",s3);就能解决你的问题了
是:printf("%c",s3);吧
可是我的程序中是有的:
printf("s3=%c\n",s3);
2012-07-27 14:28
快速回复:while 的问题,老师们帮我看一下,错在哪里了?我是初学
数据加载中...
 
   



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

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