估计是你的减号用了中文全角的,而不是英文半角的。
结婚那行的逗号,也是类似问题
仔细检查第9 10 两行的标点符号括号等,用了中文的符号。
【以下回答由 GPT 生成】
问题可能出现在输入时,scanf函数的使用上。首先,我们需要判断输入是否成功。其次,对于输入的年份,我们需要确保其逻辑正确性。以下是改进后的代码示例:
#include <stdio.h>
int main() {
int year;
int age;
printf("请输入结婚年份:");
if (scanf("%d", &year) != 1 || year > 2023) {
printf("输入无效!\n");
return 1;
}
age = 2023 - year;
printf("已结婚%d年\n", age);
return 0;
}
在改进的代码中,我们首先通过判断scanf函数的返回值来确定输入是否成功。如果scanf返回的值不是1,说明输入的格式不正确,即输入的不是一个整数,此时我们输出"输入无效!"并返回1表示程序异常结束。另外,我们增加了对年份的合法性判断,如果年份大于当前年份(2023),则也会输出"输入无效!"并返回1。最后,使用\n换行符来使输出更清晰易读。
【相关推荐】