c - 基本 scanf 语句错误

标签 c if-statement

我正在编写一个基本程序来告诉用户他们是否有足够的 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/

相关文章:

excel - Google Sheet double TRUE 给出 FALSE

bash - 我在 Bash 脚本中遇到 "unary operator expected"

带有字符串数组的 C 程序 malloc

c++ - 从命令行开始?

c - 使用 cblas_sgemm 执行复杂的矩阵操作以进行乘法

javascript - 简写 if/else 语句 : foo? foo:bar vs foo ||酒吧

c - break 语句不能在循环中工作

c - 如何在 gcc linux 中编译多个 .c 和 .h 文件?

c - glibc 的 setjmp 代码在哪里?

java - 为什么我的 if else 语句不执行?