两行printf中间夹着scanf,为啥会先把printf执行
c4droid吧
全部回复
仅看楼主
level 8
我选中的那部分。scanf读的是字符就有这个问题。
#include<stdio.h>
//预测身高
int main()
{
char sex,sport,diet;
int faHeight,moHeight;
float Height;
printf("请输入性别,F表示女性,M表示男性:");
scanf("%c",&sex);
printf("请输入父母身高\n父亲:");
scanf("%d",&faHeight);
printf("母亲:");
scanf("%d",&moHeight);
printf("是否喜爱体育锻炼?填Y或者N:");
scanf("%c",&sport);
printf("是否有良好饮食习惯?填Y或者N:");
scanf("%c",&diet);
if (sex='F') Height=(faHeight+moHeight)*0.54;
else Height=(faHeight*0.932+moHeight)/2;
if (sport='Y') Height*=1.002;
if (diet='Y') Height*=1.0015;
printf("预计身高为%f\n",Height);
}
2016年10月23日 11点10分 1
level 8
图片为啥不清楚。。。
2016年10月23日 11点10分 2
level 12
你输入字符时,敲手机上的 回车键时会产生一个符号,这个符号被char读入了!要加个吃符号的函数…[小乖]好久好久好久好久没玩C了,那个函数忘了…
2016年10月23日 12点10分 3
( ´▽` )这就尴尬了。我们的课本题。求助
2016年10月23日 12点10分
@和我帅没关系◆ 当你输入母亲身高后会敲下手机上的 回车键 对吧?此时printf会打印 是否喜欢体育锻炼…。而你刚才输入的回车被你图片上的15行代码的%c也就是char c给读入了,所以scanf已经完成了取值,所以会打印 16行 的代码!可懂?
2016年10月23日 12点10分
@和我帅没关系◆ 在每个 %c 的代码段上加 getchar(); 试试!
2016年10月23日 12点10分
回复 梦游症晚期 :厉害了。。加上getchar真成了。
2016年10月23日 12点10分
1