m0_74417583 2022-10-20 18:54 采纳率: 100%
浏览 9
已结题

想知道这个问题的解释哈哈

为什么这个程序中必须要加一个getchar或者在第二个scanf里的%c前面加个空格这个程序才能完整的运行出来

#include<stdio.h>
int main()
{
printf("输入一个温度\n");
float t;
char x;
scanf("%f",&t);
printf("输入字母'C'或'F'\n");
getchar();
scanf("%c",&x);
switch(x)
{
case 'C':t=5/9*(t-32);
printf("%2.2f",t);break;
case 'F':t=9/5*t+32;
printf("%2.2f",t);break;
default:printf("data enter error!\n");
}
return 0;
}

  • 写回答

1条回答 默认 最新

  • 心寒丶 优质创作者: 编程框架技术领域 2022-10-20 19:11
    关注

    scanf函数读完一个字符后,缓冲区里还留下一个你输入的回车,所以要用getchar读出来并丢弃。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月8日
  • 已采纳回答 10月31日
  • 创建了问题 10月20日