define MAX 1000
#include <stdio.h>
main()
{
char name[MAX][20],s[20];
int count[MAX],x,i,j,n;
FILE *fp;for (i=0;i <MAX;i++)
{
name[i][0]= '\0 ';count[i]=0; }fp=fopen( "d:\\temp\\name.txt ", "r ");while(!feof(fp))
{
fscanf(fp, "%s%d ",s,&x);
i=0;
while(i <MAX && name[i][0]!= '\0 ' && strcmp(name[i],s)) i++;
if (name[i][0]== '\0 ') strcpy(name[i],s);
count[i]+=x;
}
fclose(fp);i=0;
while(i <MAX && name[i][0])
{printf( "%s\t%d\n ",name[i],count[i]);
i++;
}
}
将name.txt文本中的多行相同字符内容简化为一行,后面的数字进行统计,如:
aaa 1
bbb 2
ccc 3
aaa 2
ccc 2
bbb 1
结果:
aaa 3
bbb 4
ccc 5
bbb结果不正确,应该为bbb 3才对.
#include <stdio.h>
main()
{
char name[MAX][20],s[20];
int count[MAX],x,i,j,n;
FILE *fp;for (i=0;i <MAX;i++)
{
name[i][0]= '\0 ';count[i]=0; }fp=fopen( "d:\\temp\\name.txt ", "r ");while(!feof(fp))
{
fscanf(fp, "%s%d ",s,&x);
i=0;
while(i <MAX && name[i][0]!= '\0 ' && strcmp(name[i],s)) i++;
if (name[i][0]== '\0 ') strcpy(name[i],s);
count[i]+=x;
}
fclose(fp);i=0;
while(i <MAX && name[i][0])
{printf( "%s\t%d\n ",name[i],count[i]);
i++;
}
}
将name.txt文本中的多行相同字符内容简化为一行,后面的数字进行统计,如:
aaa 1
bbb 2
ccc 3
aaa 2
ccc 2
bbb 1
结果:
aaa 3
bbb 4
ccc 5
bbb结果不正确,应该为bbb 3才对.
解决方案 »
- the symbol is undefined 错误
- 调整“圆,椭圆,矩形,菱形,直线”
- 求一VC的HTTP上传文件的例子,用wininet实现的
- 关于程序拖动分割条?
- 请大家解释一下InvalidateRgn()函数?
- 在另外一个类中怎么操作IDC_STATIC?
- 怎样得到当前工作路径?
- 初学,DLL与Com是什么关系?
- C++的小问题:1。我自己写了一个类,在一个过程中生成了一个实例,我退出过程的时候,这个类会自动析构吗?2。如果我想手动析构,怎么办?
- VS断点提示:当前断点不会命中。还没有为该文档加载任何符号。
- 如何监视一个程序执行完?
- 100分求助vc多媒体,使用ICOpen函数打开hic为空,快来救命啊
s[0] = '\0';
x = 0;这样就好了.所以说,通常要给变量初始化!
#include <stdio.h>
#include <string.h>
void main()
{
char name[MAX][20], s[20];
int count[MAX],x,i;
FILE *fp;
for(i=0;i<MAX;i++)
{
name[i][0]='\0';
count[i]=0;
}
fp=fopen("e:\\aa.txt", "r");
while(!feof(fp))
{
fscanf(fp, "%s%d ",s,&x);
i=0;
while(i <MAX && name[i][0]!= '\0' && strcmp(name[i],s))
i++;
if(name[i][0]=='\0')
strcpy(name[i],s);
count[i]+=x;
}
fclose(fp);
i=0;
while(i <MAX && name[i][0])
{
printf("%s\t%d\n",name[i],count[i]);
i++;
}
}
输出结果:
aaa 3
bbb 3
ccc 5楼主检查下赋值的时候是不是有不正确的地方,
如name[i][0]= '\0 ';