统计文本中字符相同的个数,请用C来写,谢谢!

ebfm 2003-05-10 10:38:43
统计文本中字符相同的个数,格式已经固定。如
951
950
945
951
950
950
948
951
948
952
940
944
947
949

-----
怎样得出结果是:
951 3
950 3
945 1
948 2
952 1
940 1
944 1
947 1
949 1


请用C来写,谢谢!!!
...全文
95 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
c啊?
用STL的map不是挺方便吗?:)
huigll 2003-05-10
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <process.h>
#include <string.h>
struct data
{
int value;//数值
int num;//个数
};
void main()
{
FILE *fin;
int i=0,tmp,j;
struct data head[100];
char fname[20];
puts("File name:");
scanf("%s",fname);
memset(head,0,sizeof(head));
if((fin=fopen(fname,"r"))==NULL)
{
puts("Open file error");
exit(-1);
}
while(!feof(fin))
{
if(fscanf(fin,"%d",&tmp)!=1)
break;

if(i==0)
{
head[i].value=tmp;
head[i].num++;
i++;
}
else
{
for(j=0;j<i;j++)
{
if(head[j].value==tmp)
{
head[j].num++;
break;
}
}
if(j==i)
{
head[i].value=tmp;
head[i].num++;
i++;
}

}


}
i=0;
while(head[i].value!=0)
{
printf(" %d %d\n",head[i].value ,head[i].num);
i++;
}
fclose(fin);
getchar();
getchar();
}
fangyi1120 2003-05-10
  • 打赏
  • 举报
回复
so easy!
lws08 2003-05-10
  • 打赏
  • 举报
回复
int a[1000];
int i;
memset(a,0,sizeof(a));
FILE *fp=fopen(filename,"r");
int temp;
while(fscanf(fp,"%d",&temp)==1)
{
a[temp]++;
}
fclose(fp);
for(i=0;i<1000;i++) if(a[i]) printf("%3d %3d",i,a[i]);
大至是这样吧

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧