用c语言统计一个txt文件当中各个数字出现的次数

从1-20当中随机抽四个随机数字,抽取50组并保存为一个txt文件请问用什么代码实现读取这个txt文件并分析出各个文字出现的次数(百分比),并保存为另一文件txt文件... 从1 - 20当中随机抽四个随机数字 , 抽取50组并保存为一个txt文件
请问用什么代码实现读取这个txt文件并分析出各个文字出现的次数(百分比),并保存为另一文件txt文件
展开
 我来答
_Herobs
推荐于2016-06-09 · 超过60用户采纳过TA的回答
知道小有建树答主
回答量:132
采纳率:80%
帮助的人:85.1万
展开全部
#include <stdio.h>

struct numCountStruct {
    int n;
    int count;
} numCount[10000];

int main() {
    int count = 0; // 数字计数
    int n;
    FILE *fp = fopen("file.txt", "r");
    while (~fscanf(fp, "%d", &n)) { // 处理到文件末尾
        int i;
        for (i = 0; i < count; i++) {
            if (numCount[i].num == n) { // 发现已经出现过,出现数+1
                numCount[i].count++
            }
        }
        if (i == count) { // 新的数字,添加到数组末尾
            numCount[count++] = {n, 1};
        }
    }
    fclose(fp);
    
    for (int i = 0; i < count; i++) {
        printf("%d presents %d times.\n", numCount[i].n, numCount[i].count);
    }
}

最终arr数组里就是统计的结果

Rankabc
推荐于2016-07-07 · TA获得超过3561个赞
知道大有可为答主
回答量:3705
采纳率:59%
帮助的人:1066万
展开全部
int n;
int times[20]={0}; 
FILE *fp=fopen("test.txt","r");
for(int i=0;i<50;i++){
    fscanf(fp,"%d",&n);
    times[n-1]++; //出现次数
}
for(int i=0;i<50;i++){
    if(times[i]!=0)printf("%d: %d%%",i+1,times[i]*2);
}
更多追问追答
追问
i 不用定义 ?
代码不是很清楚, 能把完整的写出来吗
追答
#include<stdio.h>
int main()
{
    int i,n;
    int times[20]={0}; 
    FILE *fp=fopen("test.txt","r");
    if(fp==NULL)return 0;
    for(i=0;i<50;i++){
        fscanf(fp,"%d",&n);
        times[n-1]++; //出现次数
    }
    for(i=0;i<50;i++){
        if(times[i]!=0)printf("%d: %d%%",i+1,times[i]*2);
    }
    fclose(fp);
    return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式