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
相关产品推荐
相关产品推荐

