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

C++统计二维矩阵0-9数字出现频率代码错误排查

问题原因

你的代码核心错误是计数器变量c的初始化位置错误:你将c定义在遍历0-9的外层循环之外,统计完每个数字的数量后没有重置为0,导致计数结果是前面所有数字的累计值,因此出现数字越大计数越高的错误结果。

修正方案

把计数器c的定义挪到遍历0-9的外层a循环内部,每次统计新数字的出现次数前,都将c初始化为0即可。

修正后完整代码
#include<bits/stdc++.h>
using namespace std;

void printfrequency(int array[][4])
{
    for(int a=0; a<10; a++){
        int c=0; // 每次统计新数字前重置计数器
        for (int i=0; i<4; i++)
            for ( int j=0;j<4;j++)
                if(array[i][j] == a){
                    c++;
                }
        cout << a << ":" << c <<";" ;
    }
}
int main()
{
    int array[4][4] = { {3,5,7,9}, {2,4,8,9},{1,1,1,1},{3,6,9,2} };
    printfrequency(array);
    return 0;
}
输出验证

针对你给出的测试矩阵,修正后输出为0:0;1:4;2:2;3:2;4:1;5:1;6:1;7:1;8:1;9:3;,计数结果完全正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 04:39:00