C语言如何获取用户输入并打印数组中对应的月份元素
实现代码
#include <stdio.h> int main() { // 已修正原数组中11月的拼写错误,原拼写Novemeber应为November const char *months[12] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; int input; printf("请输入1~12范围内的整数:"); // 校验是否读取到合法整数 if (scanf("%d", &input) != 1) { printf("输入不合法,请输入整数\n"); return 1; } // 校验输入范围,避免数组越界 if (input < 1 || input > 12) { printf("输入不合法,请输入1到12之间的数字\n"); return 1; } printf("对应月份为:%s\n", months[input - 1]); return 0; }
关键逻辑说明
- 数组下标映射:C语言数组索引从0开始,用户输入的1对应第一个元素
January,因此需要用输入值减1作为下标访问数组。 - 边界校验:必须校验输入的范围,防止输入超出1~12时访问数组越界,引发程序崩溃或异常输出;同时校验
scanf返回值,避免用户输入非数字内容导致逻辑异常。
内容的提问来源于stack exchange,提问作者j_tulloch157
相关产品推荐
相关产品推荐

