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

C++提取二维数组负数到新数组仅输出00000问题求助

问题分析与修复

核心错误

你写反了赋值语句的方向:
原本意图是把二维数组t中的负数存入新数组a,但代码里写成了t[i][j] = a[k];——这会把未初始化的a[k](默认值为0)覆盖掉t里的负数,之后你输出的是被覆盖后的t[i][j],所以结果全是0。

修复后的代码

#include "iostream"
using namespace std;
int main()
{
    int t[3][12]={{-2,7,6,13},{48,-5,1,-7},{16,-9,2,-9}};
    int i,j,k;
    k=0;
    int a[12];
    for(i=0; i<=2; i++)
    {
        for(j=0; j<=3; j++)
        {
            if(t[i][j]<0)
            {
                a[k] = t[i][j]; // 正确赋值:把t的负数存入a
                cout << a[k];   // 输出存入a的负数
                k++;
            }
        }
    }
    cout<<endl;

    // 可选:单独输出数组a中的所有负数
    cout << "数组a的内容:";
    for(int m=0; m<k; m++){
        cout << a[m] << " ";
    }
    cout << endl;
}

运行结果

会先输出所有负数的连续值:-2-5-7-9-9,然后换行输出数组a的内容:数组a的内容:-2 -5 -7 -9 -9

内容的提问来源于stack exchange,提问作者furkan özkan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:40:24