You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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;
}

代码说明

  1. 修正了输入提示文本,确保和需求的[20,25]范围一致。
  2. 把scanf的地址参数改为&Temperature[j][1],正确将用户输入存入数组的第二列。
  3. 调整了main函数的返回类型为int,符合C语言标准。
  4. 新增了可选的完整数组打印功能,方便你验证输入的数值是否正确存储。

内容的提问来源于stack exchange,提问作者Rama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 15:37:42