【发布时间】:2017-02-10 02:07:38
【问题描述】:
我一直在让自己发疯,试图弄清楚为什么第一个 if 语句(如果饿了是真还是假)不会显示适当的响应。如果你打对或错,它就不会打印声明。我觉得这是一个愚蠢的明显错误......但我无法发现它。 ----编辑----
第一个条件/if 语句不会显示任何内容(饥饿) 如果你输入 1 或 0,它不会显示 prinft 语句来配合它。
#include<stdio.h>
#include<stdbool.h>
int main (void){
_Bool hungry = 0;
_Bool thirsty = 0;
_Bool sleepy = 0;
printf("Are you hungry? (1 - true 0 - false) : ");
scanf("%d", &hungry);
printf("Are you thirsty?: ");
scanf("%d", &thirsty);
printf("Are you sleepy?: ");
scanf("%d", &sleepy);
if ( hungry ) {
printf("Ordering manty \n");
}
if ( thirsty ) {
printf("Ordering pot of hot tea \n");
}
else {
printf("Ordering cup of water \n");
}
if ( sleepy ) {
printf("Ordering black coffee \n");
}
else {
printf("Ordering baursaki \n");
}
}
【问题讨论】:
-
“不会显示适当的响应”。那么它具体是做什么的呢?请描述确切输入、预期输出和实际输出。
-
它不会对第一个条件(饥饿)显示任何响应
-
如果您输入 1 或 0,我将除(饥饿的)if 语句之外的所有内容都注释掉,即便如此,在输入 1 为真时它也不会显示 printf 语句。抱歉没有解释。
-
"警告:格式指定类型 'int *' 但参数的类型为 'bool *'" 是编译器应该给你的警告。