| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 590 人关注过本帖
标题:新人求助为什么是这样的??与所要的不符合
只看楼主 加入收藏
gotobreak
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-1-8
收藏
 问题点数:0 回复次数:9 
新人求助为什么是这样的??与所要的不符合
#include <stdio.h>
main()
{
    float a=0.0;
    char c=0;
s2:printf("请输入所需转换的温度值: ");
    scanf("%f",&a);
    printf("请输入转换方式[a 为华氏度转摄氏度. b 为摄氏度转华氏度]: ");
    scanf("%c",&c);
s1:switch(c)
   {
   case 'a' :
       printf("华氏度 %.1f 所对应摄氏度为 %.1f",a,(a-32.0)*5.0/9.0);
       break;
   case 'b' :
       printf("摄氏度 %.1f 所对应华氏度为 %.1f",a,a*18.0+32.0);
       break;
   default:
       printf("输入有误,请再次确认转换方式[a或b]: ");
       scanf("%c",&c);
       goto s1;
   }
   printf("是否继续使用本转换器(Y/N): ");
   scanf("%c",&c);
   if(c=='Y')
       goto s2;
   else
       return 0;
}
运行输出:
   请输入所需转换的温度值: 20
   请输入转换方式[a 为华氏度转摄氏度. b 为摄氏度转华氏度]: 输入有误,请再次确认转换方式[a或b]: b
   摄氏度 20.0 所对应华氏度为 68.0是否继续使用本转换器(Y/N):
   

搜索更多相关主题的帖子: 温度 default include 华氏度 摄氏度 
2012-01-08 00:44
gotobreak
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-1-8
收藏
得分:0 
求解啊 我没点数, 为什么会出现那种情况 还没读取输入就输出了
2012-01-08 00:49
gotobreak
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-1-8
收藏
得分:0 
郁闷 难道都不屑回答吗
2012-01-08 00:56
share32
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:214
专家分:663
注 册:2011-12-1
收藏
得分:0 

fflush(stdin);

scanf("%c",&c);
    if(c=='Y')
        goto s2;
    else
        return 0;
 
2012-01-08 01:12
Flip
Rank: 2
等 级:论坛游民
帖 子:7
专家分:14
注 册:2012-1-2
收藏
得分:0 
不要使用goto来写,还有
scanf("%f",&a);
printf("请输入转换方式[a 为华氏度转摄氏度. b 为摄氏度转华氏度]: ");
scanf("%c",&c);此语句第一次读取的是回车,所以重新输入,需要在printf语句后加上getchar()。



[ 本帖最后由 Flip 于 2012-1-8 01:17 编辑 ]
2012-01-08 01:12
gotobreak
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-1-8
收藏
得分:0 
回复 4楼 share32
谢啦 我加入了fflush(stdin);
就不出现那个问题了
fflush(stdin);
这个貌似还没看到过。
2012-01-08 01:17
gotobreak
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-1-8
收藏
得分:0 
回复 5楼 Flip
printf语句后跟getchar();也能解决问题 ,谢谢了
我刚好学到goto语句 ,正好那一章总结有这个习题
所以练习一下
2012-01-08 01:21
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
这个程序如果不用goto语句该怎么改呢,不会是把上面的再重复一遍在条件后面吧?新人求解。
2012-01-08 01:57
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 8楼 小赵q1
用循环

总有那身价贱的人给作业贴回复完整的代码
2012-01-08 07:37
hk327143206
Rank: 2
等 级:论坛游民
帖 子:35
专家分:31
注 册:2011-6-25
收藏
得分:0 
#include <stdio.h>
main()
{
    float a;
    char c,m,p;
s2: printf("请输入所需转换的温度值: ");
    scanf("%f",&a);
    getchar();
    printf("请输入转换方式[a 为华氏度转摄氏度. b 为摄氏度转华氏度]: ");
s1: scanf("%c",&c);
   
 switch(c)
   {
   case 'a' :
       printf("华氏度 %.1f 所对应摄氏度为 %.1f",a,(a-32.0)*5.0/9.0);
       break;
   case 'b' :
       printf("摄氏度 %.1f 所对应华氏度为 %.1f",a,a*18.0+32.0);
       break;
   default:
       printf("输入有误,请再次确认转换方式[a或b]: ");
       goto s1;
   }
   printf("\n");
   getchar();
   printf("是否继续使用本转换器(Y/N): ");  
   scanf("%c",&m);
   if(m=='y'||m=='Y')
       goto s2;
   else
       return 0;
}
//不知道这样是不是满足你的要求,给你参考下
2012-01-08 19:51
快速回复:新人求助为什么是这样的??与所要的不符合
数据加载中...
 
   



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

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