我很擅长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/

10-15 06:49