背景:模拟,结构体,strcmp()。
学习:1.最大的易错点是,除数为0的情况,开始没有考虑,调了才发现。
/* ID:jibancan1 LANG:C++ TASK:gift1 */ #include<stdio.h> #include<string.h> struct child{ char str[15]; int x; //输出与接收的差值。 }p[10]; int main(void){ freopen("gift1.in","r",stdin); freopen("gift1.out","w",stdout); int np; scanf("%d",&np); for(int i=0;i<np;i++) scanf("%s",p[i].str); char key[15]; //暂时存放读入的字符串。 for(int j=0;j<np;j++){ scanf("%s",key); int k=0; //找出当前读入名字是哪个? for(;k<np;k++) if(strcmp(key,p[k].str)==0) break; int money,ng; //初始的钱和要给的人数。 scanf("%d %d",&money,&ng); if(ng!=0) p[k].x-=money-money%ng; for(int ii=0;ii<ng;ii++){ //把钱分给ng个人。 scanf("%s",key); for(k=0;k<np;k++) if(strcmp(key,p[k].str)==0) break; if(ng!=0) p[k].x+=money/ng; } } for(int jj=0;jj<np;jj++) printf("%s %d\n",p[jj].str,p[jj].x); return 0; }
时间: 2024-10-30 00:22:58