USACO1.1.2 钱数为什么总是0??。。纠结很久了。。
#include<stdio.h>
#include<string.h>
//#include<stdlib.h>
char a[11][15];
int b[11]={0};
void search(int n)
{
FILE *fin;
fin=fopen("gift1.in","r");
char ctl[15];
char c[11][15];
fscanf(fin,"%s",ctl);
int m,p,i,j;
for(i=0;i<n;i++)
if(!strcmp(ctl,a[i]))
break;
fscanf(fin,"%d %d",&m,&p); //money&number
if(p)
{b[i]+=m%p;
for(i=0;i<p;i++)
fscanf(fin,"%s",c[i]);
for(i=0;i<p;i++)
for(j=0;j<n;j++)
if(!strcmp(a[j],c[i]))
b[j]+=m/p;
return;}
else
{b[i]+=m;
return;}
}
int main()
{ FILE *fin,*fout;
fin=fopen("gift1.in","r");
fout=fopen("gift1.out","w");
int i,n;
fscanf(fin,"%d",&n);
for(i=0;i<n;i++)
fscanf(fin,"%s",a[i]);
for(i=0;i<n;i++)
search(n);
for(i=0;i<n;i++)
fprintf(fout,"%s %d\n",a[i],b[i]);
//system("pause");
return 0;}
#include<stdio.h>
#include<string.h>
//#include<stdlib.h>
char a[11][15];
int b[11]={0};
void search(int n)
{
FILE *fin;
fin=fopen("gift1.in","r");
char ctl[15];
char c[11][15];
fscanf(fin,"%s",ctl);
int m,p,i,j;
for(i=0;i<n;i++)
if(!strcmp(ctl,a[i]))
break;
fscanf(fin,"%d %d",&m,&p); //money&number
if(p)
{b[i]+=m%p;
for(i=0;i<p;i++)
fscanf(fin,"%s",c[i]);
for(i=0;i<p;i++)
for(j=0;j<n;j++)
if(!strcmp(a[j],c[i]))
b[j]+=m/p;
return;}
else
{b[i]+=m;
return;}
}
int main()
{ FILE *fin,*fout;
fin=fopen("gift1.in","r");
fout=fopen("gift1.out","w");
int i,n;
fscanf(fin,"%d",&n);
for(i=0;i<n;i++)
fscanf(fin,"%s",a[i]);
for(i=0;i<n;i++)
search(n);
for(i=0;i<n;i++)
fprintf(fout,"%s %d\n",a[i],b[i]);
//system("pause");
return 0;}