这题的话, 我用的是个结构体, 记录各个人.. 我错了的地方我注释了`
/*
LANG: C
ID: zqynux11
PROG: gift1
*/
#include <stdio.h>
#include <string.h>
struct people{
char name[15];
int given, got;
}pep[10];
int np;
int find(char *str)
{
int i;
for(i = 0; i < np; i++){
if(strcmp(str, pep[i].name) == 0){
return i;
}
}
return -1;
}
int main(void)
{
int i, j;
int t, tot, eve, mon;
char tmp[15];
freopen("gift1.in", "r", stdin);
freopen("gift1.out", "w", stdout);
scanf("%d\n", &np); /* 刚开始的时候输入忘记处理'\n'了 */
for(i = 0; i < np; i++){
gets(pep[i].name);
}
while(gets(tmp) != NULL){
t = find(tmp);
scanf("%d%d\n", &mon, &tot); /* 同上 */
if(tot != 0){
eve = mon / tot;
}
pep[t].got += mon - eve * tot;
pep[t].given += mon;
for(j = 1; j <= tot; j++){
pep[find(gets(tmp))].got += eve;
}
}
for(i = 0; i < np; i++){
printf("%s %d\n", pep[i].name, pep[i].got - pep[i].given);
}
return 0;
}
本文介绍了一个使用C语言实现的简单程序,该程序通过结构体记录参与者的名字、赠送和收到的金额来模拟礼物交换的过程。文章详细展示了如何读取输入、处理数据并输出最终结果。
513

被折叠的 条评论
为什么被折叠?



