我很擅长if/else语句,这是一个很老的任务,我最终交了一部分但我还是想知道为什么我的代码不能工作。
我希望我的用户输入姓名、身高和性别。然后我的代码将显示一个完整的句子,上面写着“Name is X cm高,is a male”或“Name is X cm高,is a male”
当我输入name并输入时,它会立即跳过并显示身高和性别不管之后我输入了什么,它都会结束程序。
输入名称:杰克
输入高度(cm):180
性别(男/女):
计算机$
我已经玩了一段时间了,但是我已经被卡住了一段时间。任何帮助都将不胜感激这是我的代码:
#include<stdio.h>
int main() {
char name[30];
char sex;
float height;
printf("Input name: ");
scanf("%s", name);
fflush(stdin);
printf("Input height in cm: ");
scanf("%f", &height);
fflush(stdin);
printf("sex(M/F): ");
scanf("%c", &sex);
if (sex == 'M')
{
printf("%s is %f cm tall and male", name, height);
}
else if (sex == 'F')
{
printf("%s is %f cm tall and female", name, height);
}
printf("\n");
return 0;
}
最佳答案
从我看来,这只不过是跳过了性的部分——老实说,这是非常悲哀的:-)。
然后它立即跳过显示高度和性别
输入名称:插孔输入高度(cm):180性别(M/F):计算机$
你可以试试这个:
scanf(" %c", &sex);
^
空格使
scanf
在读取字符之前吃空字符。关于c - C-if/else语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11611958/