| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2338 人关注过本帖
标题:学习C语言时遇到问题,求大神解答QwQ
取消只看楼主 加入收藏
RiceD
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-7-12
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
学习C语言时遇到问题,求大神解答QwQ
本人在做某本C语言教材上的习题时遇到了问题:
问题状况:在输入错误字符时会输出2句及以上的“输入错误,请重新输入!”,输入1个错误字符会出现两句,2个会出现三句,以此类推
问题代码:
程序代码:
#include <stdio.h>
#include <ctype.h>
int main()
{
    int n=0;
    double C=0,F=0;
    printf("选择转换模式\n1.摄氏度转华氏度        输入A\n2.华氏度转摄氏度        输入B\n");
    for (char choice=0;choice!='A'&&choice!='B'&&choice!='a'&&choice!='b';n++)    //是不是这个for语句出现了问题?
    {
        if(n!=0) printf("输入错误,请重新输入!\n");    //该语句会输出两次
        scanf("%c",&choice);
    }
    if(toupper(choice)=='A')
    {
        printf("输入摄氏温度\n");
        scanf("%lf",&C);
        F=C*1.8+32;
        printf("%.2lf摄氏度等于%.2lf华氏度\n",C,F);
    }    
    else if (toupper(choice)=='B')
    {
        printf("输入华氏温度\n");
        scanf("%lf",&F);
        C=(F-32)*5/9;
        printf("%.2lf华氏度等于%.2lf摄氏度\n",F,C);
    }
    return 0;
}

希望大神们能解决这个问题。
谢谢!
搜索更多相关主题的帖子: C语言 
2016-07-12 18:00
RiceD
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-7-12
收藏
得分:0 
回复 7楼 wanglianyi1
首先感谢您和其他网友的回答!
实际上我先借鉴2l的回帖尝试了第一种办法,但是结果不是很尽如人意...但还是感谢2l细致的回答!;
第二种办法,由于初学,没有掌握,不太会用,只得放弃;
最终采用第三种办法,把8l的代码贴进了程序,效果非常理想!然而对于这个清空缓存的函数,了解的极为浅显,还需继续学习!;
另外还要感谢3l和4l的帮助!
再次感谢!
2016-07-13 18:34
快速回复:学习C语言时遇到问题,求大神解答QwQ
数据加载中...
 
   



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

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