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

对两个数组逐元素相加时,程序要求输入过多数字的问题排查

问题分析与修复方案

问题1:输入次数远超预期

你的代码用了三重嵌套循环,外层循环执行n次,每输入一个num1[i],中间循环就会执行n次来输入num2[j]。这意味着num2数组会被重复输入n遍,总输入数字量变成了1(n的输入) + n + n²,远远超过你需要的1 + 2n个数字,所以程序会一直要求输入。

问题2:数组相加逻辑完全错误

当前代码里,每次内层循环会把num3的所有元素都赋值为num1[i] + num2[j],最后num3的所有元素都会被最后一次循环的num1[n-1] + num2[n-1]覆盖,根本没实现对应索引元素相加的需求。

修复后的代码

#include<stdio.h>
int main(){
    int n;
    scanf("%d",&n);
    int num1[n],num2[n],num3[n];
    
    // 输入第一个数组的n个元素
    for(int i = 0;i<n;i++){
        scanf("%d",&num1[i]);
    }
    
    // 输入第二个数组的n个元素
    for(int i = 0;i<n;i++){
        scanf("%d",&num2[i]);
    }
    
    // 对应索引相加存入第三个数组
    for(int i = 0;i<n;i++){
        num3[i] = num1[i] + num2[i];
    }
    
    // 输出结果
    for (int l = 0; l < n; l++)
        printf("%d ",num3[l]);
    printf("\n");
    return 0;
}

代码说明

  • 拆分三个独立循环:分别输入两个数组,再执行对应索引相加,逻辑清晰且符合需求。
  • 总输入数字量为1 + 2n,和预期一致,不会出现无限要求输入的情况。
  • 正确实现了num3[i] = num1[i] + num2[i]的对应索引相加逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 20:15:17