有关C语言的数数字的编程问题,求代码

在C盘下叫in.txt和out.txt文档,其中in文档内的数据为以下格式的数字行若干
10 11 12 13 26 28;
04 09 19 20 21 26;
01 07 10 23 28 32;
04 06 07 10 13 25;
04 06 10 17 30 31;
.......
求用C语言编程,通过对in.txt文档内的上述数据进行统计(每个数据间是一个空格,最后分号后就换行,总之txt文档内显示就是如上的数据例子展示一样),统计1-50的数字出现的次数,比如01出现100次 02 98次,则显示为 1 100;2 98;如此类推到统计50出现的次数;然后将上述数据反馈到out.txt文档内进行保存。求大侠们能给上完整代码。。。对于你们来说应该是几分钟搞掂的事情。。求解。。

#include<stdio.h>
int main(){
    FILE *r = fopen("C:\\in.txt","r");
    FILE *w = fopen("C:\\out.txt","w");
    int a[50]={0};
    int i;
    char c;
    while(fscanf(r,"%2d%c",&i,&c)!=EOF){
        a[i-1]++;
        printf("%d\n",i);
    }
    fclose(r);
    for(i=1;i<=50;i++){
        fprintf(w,"%d %d\n",i,a[i-1]);
    }
    fclose(w);
    return 0;
}


追答

谢谢啦

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-07
#include<stdio.h>
void main()
{ FILE *fp;
int i,s[50],x[6],n;
char buffer[81];

for ( i=0;i<50;i++ ) s[i]=0;
if ( fp=fopen("in.txt","r") )
{ while ( !feof(fp) )
{ fgets(buffer,80,fp);
n=sscanf(buffer,"%d %d %d %d %d %d",&x[0],&x[1],&x[2],&x[3],&x[4],&x[5]);
if ( n>0 ) for ( i=0;i<n;i++ ) if ( x[i]>0 && x[i]<=50 ) s[x[i]-1]++;

}

fclose(fp);
if ( fp=fopen("out.txt","w+") )
{ for ( i=0;i<50;i++ ) { sprintf(buffer,"%02d %d;\n",i+1,s[i]); fputs(buffer,fp); }

fclose(fp);

}
}

}追问

大哥,直接复制你的代码是这个结果,求救。运行环境是XP TC 2.0,谢谢

本回答被网友采纳
相似回答