我正在编写一个基本程序来告诉用户他们是否有足够的 sleep 。但是,无论输入多少小时,它始终会显示第一条消息“ sleep 不足”,即使他们已经睡了 10 小时。
double hoursOfSleep;
printf("Please enter the amount of hours of sleep you received last night:\n");
scanf("%f", &hoursOfSleep);
if (hoursOfSleep <= 4){
printf("Sleep deprived!\n");}
else if (hoursOfSleep <= 6){
printf("You need more sleep.\n");}
else if (hoursOfSleep <= 8){
printf("Not quite enough.\n");}
else
printf("Well Done!\n");
最佳答案
尝试这样的事情:
scanf("%lf",&hoursOfSleep);
因为您指定了 %f
,所以您告诉 scanf()
期待一个 float *
,但是您传递了一个 double *
。使用 "%lf"
指定您请求 double 值(传递 double *
)。
关于c - 基本 scanf 语句错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39824576/