我使用LINUX操作系统和GCC编译器。当我运行此代码时,
#include<stdio.h>
int main()
{
int age;
char col;
printf("Enter a age ");
scanf("%d",&age);
printf("Enter a college:");
scanf("%c",&col);
if(age>=25 && (col=='H' || col=='Y'))
printf("Harvard");
else
printf("Yale");
return 0;
}
当我运行此代码时,输出为,
$./a.out
$Enter a age 28
Enter a college:Yale
$
即使我尝试给年龄赋予不同的值,输出仍然相同。 为什么循环中止并打印代码中的下一个语句?
当我更改变量声明时,我首先读取字符然后读取年龄..现在代码正常工作。 为什么会这样?
答案 0 :(得分:0)
在输入整数输入age
之后,按“输入”,这应该算作char
,它会分配col
。您需要使用getchar()
来处理您已按下的输入。看下面的代码:
int main(){
int age;
char col;
printf("Enter a age ");
scanf("%d",&age);
getchar(); // the enter which you hit after taking age as an integer input
printf("Enter a college:");
scanf("%c",&col);
if(age>=25 && (col=='H' || col=='Y'))
printf("Harvard");
else
printf("Yale");
return 0;
}