| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1116 人关注过本帖
标题:[讨论]请大家帮我解释一下这个在switch中出现的问题
只看楼主 加入收藏
crz
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2004-5-20
收藏
 问题点数:0 回复次数:3 
[讨论]请大家帮我解释一下这个在switch中出现的问题

#include <stdio.h> #include <conio.h>

int main() { float apple_m=2.8; float banana_m=1.7; float manguo_m=6.5; float apple=0.0; float banana=0.0; float manguo=0.0; float pay,get,back; int chose,screen=1; char check2,check1=1;

while (screen) { clrscr(); printf("\n\n"); printf("\t\t\t*******************************\n"); printf("\t\t\t* How mouch momey *\n"); printf("\t\t\t* (1) Apple-----------2.8$ *\n"); printf("\t\t\t* (2) Banana----------1.7$ *\n"); printf("\t\t\t* (3) Manguo----------6.5$ *\n"); printf("\t\t\t* Other to done *\n"); printf("\t\t\t*******************************\n"); printf("\n"); printf("Witch do you want :"); scanf("%d",&chose); switch (chose) { case 1:

printf("\nInput the weight: kg\b\b\b\b\b\b"); scanf("%f",&apple); printf("\nOk,%.2fkg apples.\n",apple); getchar(); break;

case 2:

printf("\nInput the weight: kg\b\b\b\b\b\b"); scanf("%f",&banana); printf("\nOk,%.2fkg bananas.\n",banana); getchar(); break;

case 3:

printf("\nInput the weight: kg\b\b\b\b\b\b"); scanf("%f",&manguo); printf("\nOk,%.2fkg manguos.\n",manguo); getchar(); break; default : screen=0; } printf("That's all?(y/n)\t"); scanf("%c",&check2); if (check2=='y') screen=0; } pay=apple*apple_m+banana*banana_m+manguo*manguo_m; printf("\nOK!It's %.2f$\n",pay); while (check1) { printf("\nGet : $\b\b\b\b\b"); scanf("%f",&get); if (get<pay) { printf("It's not enaf"); } else check1=0; } back=get-pay; printf("\nShuld back %.2f$",back); getchar(); return 0; } /*问题1:在case语句中,比如在case1中,为什么我一旦取消了getchar()命令, getchar()上面的语句printf("\nOk,%.2fkg apples.\n",apple);就无法执行? 或者说执行了却看不到效果? 问题2:为什么在case语句中的printf("\nOk,%.2fkg apples.\n",apple);第二 个“\n”命令没有效果?而ok前面的那个\n却有效果?*/

搜索更多相关主题的帖子: switch 解释 讨论 
2004-05-20 21:16
jzh2004
Rank: 1
等 级:新手上路
帖 子:341
专家分:0
注 册:2004-4-30
收藏
得分:0 

1,你是用TC吧?可以用chtl+F9编译执行,用alt+F5查看结果。

2,没有效果吗?你确信光标是停在句尾还是停在下一行?


我的主页 http://www.
2004-05-20 23:26
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
以下是引用crz在2004-05-20 21:16:37的发言:

#include <stdio.h> #include <conio.h>

int main() { float apple_m=2.8; float banana_m=1.7; float manguo_m=6.5; float apple=0.0; float banana=0.0; float manguo=0.0; float pay,get,back; int chose,screen=1; char check2,check1=1;

while (screen) { clrscr(); printf("\n\n"); printf("\t\t\t*******************************\n"); printf("\t\t\t* How mouch momey *\n"); printf("\t\t\t* (1) Apple-----------2.8$ *\n"); printf("\t\t\t* (2) Banana----------1.7$ *\n"); printf("\t\t\t* (3) Manguo----------6.5$ *\n"); printf("\t\t\t* Other to done *\n"); printf("\t\t\t*******************************\n"); printf("\n"); printf("Witch do you want :"); scanf("%d",&chose); switch (chose) { case 1:

printf("\nInput the weight: kg\b\b\b\b\b\b"); scanf("%f",&apple); printf("\nOk,%.2fkg apples.\n",apple); getchar(); break;

case 2:

printf("\nInput the weight: kg\b\b\b\b\b\b"); scanf("%f",&banana); printf("\nOk,%.2fkg bananas.\n",banana); getchar(); break;

case 3:

printf("\nInput the weight: kg\b\b\b\b\b\b"); scanf("%f",&manguo); printf("\nOk,%.2fkg manguos.\n",manguo); getchar(); break; default : screen=0; } printf("That's all?(y/n)\t"); scanf("%c",&check2); //这里就是问题所在,改为scanf(" %c", 看清楚有个空格 if (check2=='y') screen=0; } pay=apple*apple_m+banana*banana_m+manguo*manguo_m; printf("\nOK!It's %.2f$\n",pay); while (check1) { printf("\nGet : $\b\b\b\b\b"); scanf("%f",&get); if (get<pay) { printf("It's not enaf"); } else check1=0; } back=get-pay; printf("\nShuld back %.2f$",back); getchar(); return 0; } /*问题1:在case语句中,比如在case1中,为什么我一旦取消了getchar()命令, getchar()上面的语句printf("\nOk,%.2fkg apples.\n",apple);就无法执行? 或者说执行了却看不到效果? 问题2:为什么在case语句中的printf("\nOk,%.2fkg apples.\n",apple);第二 个“\n”命令没有效果?而ok前面的那个\n却有效果?*/


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-06-03 22:55
jianenghui
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2004-6-6
收藏
得分:0 
第二个\n有效果啊,其实\n仅仅是起一个转行的作用,你可能认为没达到空行的作用,你用两个\n不就行了.
2004-06-06 20:01
快速回复:[讨论]请大家帮我解释一下这个在switch中出现的问题
数据加载中...
 
   



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

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