标签:模拟
背景:模拟,结构体,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;
}
标签:模拟
原文地址:http://blog.csdn.net/jibancanyang/article/details/41909129