C语言出现multi-character character constant错误如何解决?
问题解答
结论
你的自行排查结论完全正确。
错误原因拆解
multi-character character constant报错原因:
C语言中,单引号'仅可用于包裹单个字符字面量(例如'0'、'a'),你在代码中写的'25'包含了2、5两个字符,属于多字符字符常量,该类常量的取值由编译器实现定义,同时你开启了-Werror编译参数,会将所有警告转为错误直接抛出。且你需要比较的是整数数值,完全不需要用单引号包裹数字。- 逻辑运算符错误原因:
原代码使用||(逻辑或)的判断逻辑为「只要满足其中一个条件就成立」,比如年龄为30时,满足>=0的条件,会错误输出「you are young」。如果要判断年龄落在0~25的闭区间内,必须使用&&(逻辑与),要求两个条件同时成立。
修复后的完整代码
#include <cs50.h> #include <stdio.h> int main (void) { int n = get_int("what is your age: "); if(n >= 0 && n <= 25) { printf("you are young\n"); } else { printf("you are old\n"); } }
内容的提问来源于stack exchange,提问作者rasberry
相关产品推荐
相关产品推荐

