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

如何统计数组中1-5元素的出现次数并按序存入新数组

代码问题分析
  • 索引使用错误:你把遍历arr1的循环变量i直接当做arr2的索引,i的取值范围是0-9,但arr2只有5个元素,不仅会出现数组越界访问,也完全没有对应「arr1的数值x对应arr2的x-1位置」的需求。
  • 统计逻辑错误:每次循环都会重新定义count变量,且仅判断数值等于1的时候才累加,完全没有统计2-5的出现次数;额外加的arr2[i] == 0判断也只会让对应位置第一次被访问时赋值一次,无法实现次数累加。
  • 输出逻辑错误:你在循环内每次都输出当前的count值,而不是遍历完所有元素后统一输出arr2的全部元素。
正确实现代码
#include <iostream>
using namespace std;

int main() {
    int n = 10;
    int arr1[10] = {1,4,3,1,2,4,5,4,1,3};
    int arr2[5] = {0,0,0,0,0};

    for (int i = 0; i < n; i++) {
        int rate = arr1[i];
        // 数字1对应arr2第0位,数字x对应arr2第x-1位,直接累加计数
        arr2[rate - 1]++;
    }

    // 按要求格式输出结果
    for (int i = 0; i < 5; i++) {
        if (i != 0) cout << ",";
        cout << arr2[i];
    }
    cout << endl;
    return 0;
}

运行后输出结果为3,1,2,3,1,符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 13:45:03