改错题:用户从键盘任意输入一个数字表示月份值n,程序显示该月份对应的英文表示,若n不在1~12之间,则输出“Illegal month”。 注意: (1)请将修改正确后的完整源程序拷贝粘贴到答题区内。 (2)对于没有错误的语句,请不要修改,修改原本正确的语句也要扣分。 (3)当且仅当错误全部改正,且程序运行结果调试正确,才给加5分。 #include <stdio.h> main() { int n; char monthName[][20] = {Illegal month, January, February, March, April, May, June, July, August, September, October, November, December}; printf("Input month number:"); scanf("%d", n); if ((n < 12) || (n > 1)) { printf("month %d is %c\n", n, monthName[n][n]); } else { printf("%s\n", monthName[0][0]); } }
时间: 2024-02-02 08:03:44 浏览: 245
Java简单程序 键入数字输出相应的月份的英文
改正后的程序如下:
```
#include <stdio.h>
int main() {
int n;
char monthName[][20] = {"Illegal month", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
printf("Input month number:");
scanf("%d", &n);
if ((n >= 1) && (n <= 12)) {
printf("month %d is %s\n", n, monthName[n]);
}
else {
printf("%s\n", monthName[0]);
}
return 0;
}
```
改错说明:
1. `main()` 应该声明为 `int main()`,以便返回一个整型值。
2. 在 `char monthName[][20]` 中,第一个字符串应该加上双引号,表示字符串常量。同时,第一个字符串应该为 "Illegal month",而不是 Illegal month。
3. 在 `scanf("%d", n)` 中,应该使用 `&n`,以便将输入值存储到 `n` 中。
4. 在 `if` 语句中,应该将条件改为 `(n >= 1) && (n <= 12)`,以便判断输入值是否在 1~12 之间。
5. 在 `printf` 语句中,应该将第二个参数改为 `%s`,以便输出字符串。同时,第二个参数应该改为 `monthName[n]`,以便输出对应月份的英文名称。
阅读全文