中易网

C语言结构体累加的问题!请看一下,谢谢!

答案:1  悬赏:20  
解决时间 2021-11-24 02:35
它的问题是:1个文本文件中存放着这样的信息:1 5
2 8
3 7
1 4
即第一项是id号 第二项是值 同一id有多个值。写一个程序,把这些数据存储到1个结构数组中,程序应该读到文件末尾,并且应该保存每个id的值的累积和,即最后显示结果是:id sum
1 5+4=9
2 8
3 7
-----------------
我已经写出把数据读到结构数组里面的代码了,可是求id的值的累积和不会写,希望大家帮帮我,谢谢!
---------
#include
#include
#define m 48
struct shuz{
int id;
int num;
};

int main(void)
{
int i=0;
struct shuz sum[m];

FILE *fp;
if((fp=fopen("a.txt","r"))==NULL)
{
fprintf(stderr,"file open error!");
exit(1);
}

while(fscanf(fp,"%d %d",&sum[i].id,&sum[i].num)!=EOF)
{
printf("%d %d\n",sum[i].id,sum[i].num);
i++;
if (ferror(fp))
{
fprintf(stderr,"读取数据有错误!\n");
exit(1);
}
}

return 0;
}

接下来就不会写了 我搞不清楚它是怎么累加的 希望大家能帮我解决!谢谢!!
回答采纳后把剩余的财富值全补上!
最佳答案
不明白原理就在线聊

#include
#include
#include
#define m 48
struct shuz{
int id;
int num;
};

int main(void)
{
int i=0;
struct shuz sum[m];
FILE *fp;
if((fp=fopen("a.txt","r"))==NULL)
{
fprintf(stderr,"file open error!");
exit(1);
}

while(fscanf(fp,"%d %d",&sum[i].id,&sum[i].num)!=EOF)
{
printf("%d %d\n",sum[i].id,sum[i].num);
i++;
if (ferror(fp))
{
fprintf(stderr,"读取数据有错误!\n");
exit(1);
}
}
int k,j;
for(k=0;k {
if(sum[k].id==-1)
continue;
int id=sum[k].id;
for(j=k+1;j {
if(sum[j].id==-1)
continue;
if(sum[j].id==id)
{
sum[k].num+=sum[j].num;
sum[j].id=-1;
}
}

}
printf("%c",'\n');
for(j=0;j {
if(sum[j].id!=-1)
printf("%d %d\n",sum[j].id,sum[j].num);
}

return 0;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
老公在外面租房子养了一个女人算重婚吗?
前駈的意思是什么啊?请解释下!
macbookpro在哪买最便宜
求人工[百度]少女3下载!!
两口子怎么分配钱
核理的意思是什么啊?请解释下!
有没有用过爱源美纤姿茶的朋友啊,不知道效果
身为学生,如何做才能确保假期安全
名侦探柯南单行本的销量?
宝宝色素沉着如何应对呀
郑州大学户口迁入后身份证去哪儿办理
跒倔的意思是什么啊?请解释下!
逆战内置qt不能用怎么办
黄色是秋天的景色用英语怎么说??
为什么dowith与what连用?
推荐资讯
在济州岛玩一天花多少钱?
谁有办公室请假制度发一份给我?
求一易速比特加速器的账号
sinceαisonto在数学中啥意思啊?
插卡取电的用途是什么?狮盾插卡取电的功率可
上海到北京航班到哪个机场
北京哪个线下相亲靠谱
青岛电子有限公司
哪位可以告诉下莫干山e0级板材价格
学游泳初期一定要用滑板背板吗
炒地皮的意思是什么啊?请解释下!
跑步机快走2.5km能消耗多少脂肪
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?