还是那个IMPORTANTNOTE惹的祸!把个gets()改为scanf就行了
#include<stdio.h> #include<string.h> #include<stdlib.h> struct fen{ int money; char name[20]; }fen[20]; int main() { int m,i,d,q,j,s; char a[20]; scanf("%d",&m); for(i=0;i<19;i++) fen[i].money=0; for(i=0;i<m;i++) scanf("%s",fen[i].name); for(q=0;q<m;q++) { scanf("%s",a); scanf("%d%d",&s,&d); if(d==0)continue; for(i=0;i<m;i++) if(strcmp(fen[i].name,a)==0) { // puts(fen[i].name); fen[i].money+=s%d-s;//printf("%d\n",fen[i].money); break; } for(i=0;i<d;i++) { scanf("%s",a); for(j=0;j<m;j++) if(strcmp(fen[j].name,a)==0) { // printf("%d\n",fen[j].money); fen[j].money+=s/d;//printf("%d\n",fen[j].money); break; } } } for(i=0;i<m;i++) printf("%s %d\n",fen[i].name,fen[i].money); return 0; }