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

C语言统计数字出现次数结果重复打印如何修复

问题根因

你当前的打印逻辑是遍历全部输入元素,输入里出现多少次某个数字,就会触发多少次该数字的频次打印,所以才会出现重复输出的问题。

修复方法

将原代码中最后一段遍历输入数组的打印循环,替换为遍历计数数组的逻辑即可:
原需要替换的代码段:

for(i=0;i<n;i++){
    printf("Number %d appears: %d times\n", arr[i], counters[arr[i]]);
}

替换为:

// 遍历0~100的所有合法输入值,只要出现过就打印
for(i=0;i<=100;i++){
    if(counters[i] > 0){
        printf("数字%d出现%d次。\n", i, counters[i]);
    }
}

完整修改后代码

#include <stdio.h>

int main() {
    int i,arr[1000],counters[1001]={0},n;
    printf("输入数字:\n");
    for(i=0;i<100;i++){
        scanf("%d", &arr[i]);
        if(arr[i]==-1) break;
        if(arr[i]<0||arr[i]>100){
            printf("数字必须在0到100之间\n");
            i--;
        }
    }
    n=i;

    for(i=0;i<n;i++){
        counters[arr[i]]++;
    }

    // 修改后的打印逻辑
    for(i=0;i<=100;i++){
        if(counters[i] > 0){
            printf("数字%d出现%d次。\n", i, counters[i]);
        }
    }
    
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:15:03