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

C语言使用自定义函数统计数组元素出现频率运行错误求助

C语言数字频率统计程序问题排查

错误原因

  • freq自定义函数没有接收必要的核心参数:你在freq内部重新定义了局部变量num数组和chn,这两个变量未初始化,存储的是内存随机值,完全没有用到main函数中用户录入的有效数组数据和要统计的目标数字,自然统计结果错误。
  • 调用freq时仅传入了数组长度n,缺少已录入的数组、目标统计数字两个必要参数。

修复方案

调整freq函数的参数列表,直接传入固定长度的数组、数组长度、目标统计数字即可,符合你当前阶段不使用指针、结构体的要求:

修改后的完整代码

#include<stdio.h>

// 调整函数声明,增加数组、目标数字参数
int freq(int num[10], int n, int chn);

int main()
{
    int n, frq=0, chn;
    int num[10];
    int i, j;
    
    printf("Enter quantity of numbers to be inputted: ");
    scanf("%d", &n);
    
    for(i=0; i<n; i++)
    {
        printf("Enter number[%d]: ", i+1);
        scanf("%d", &num[i]);
    }
    printf("(");
    for(j=0; j<n; j++)
    {
        printf("%d, ", num[j]);
    }
    printf(")\n\n");
    
    printf("Enter number to be counted: ");
    scanf("%d", &chn);
    
    // 调用时传入数组、长度、目标数字
    frq = freq(num, n, chn); 

    printf("Instance count: %d", frq);
    return 0;
}

int freq(int num[10], int n, int chn)
{
    int i, frq=0;
    // 不用重新定义num和chn,直接使用传入的参数
    for(i=0; i<n; i++)
    {
        if(num[i]==chn)
        {
            frq++;   
        }
    }
    return frq;
}

验证结果

用你给出的示例输入测试,统计数字3的出现次数返回结果为3,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:15:04