如何在C语言中让用户为二维数组第二列填充[20,25]范围数值?
修正你的二维数组填充代码
我帮你梳理下当前代码里的问题,然后给出修正后的版本:
原代码的两个核心问题
- 输入范围提示错误:你要求用户输入[20,25]范围的数值,但代码里提示的是
请为第二列填充[0,20]范围的数值,这和需求不符。 - scanf目标地址错误:你现在写的
&Temperature[0][j]会把输入值存到第一列的第j行,而我们需要的是第二列(索引为1)的第j行,应该改成&Temperature[j][1]。
额外的规范优化
标准C中void main并不是推荐写法,建议改成int main()并在末尾添加return 0;,保证程序符合C标准规范。
修正后的完整代码
#include <stdio.h> int main() { // 初始化第一列的数值,范围[20,24](符合[20,25]要求) int Temperature[5][2] = {{20}, {21}, {22}, {23}, {24}}; printf("我创建了一个5×2的二维数组,"); printf("并为第一列填充了[20,25]范围的数值\n"); // 打印第一列的数值 for(int i = 0; i < 5; i++) { printf("%d\n", Temperature[i][0]); } // 修正输入范围提示,改为[20,25] printf("请为第二列填充[20,25]范围的数值\n"); int j; for(j = 0; j < 5; j++) { printf("数值[%d]: ", j); // 修正scanf的目标地址,指向第二列的第j行 scanf("%d", &Temperature[j][1]); } // 可选:打印完整数组,验证输入是否正确 printf("\n完整的温度数组:\n"); for(int i = 0; i < 5; i++) { printf("第%d行:%d, %d\n", i, Temperature[i][0], Temperature[i][1]); } return 0; }
代码说明
- 修正了输入提示文本,确保和需求的[20,25]范围一致。
- 把
scanf的地址参数改为&Temperature[j][1],正确将用户输入存入数组的第二列。 - 调整了
main函数的返回类型为int,符合C语言标准。 - 新增了可选的完整数组打印功能,方便你验证输入的数值是否正确存储。
内容的提问来源于stack exchange,提问作者Rama
相关产品推荐
相关产品推荐

