#include<stdio.h>
#include<string.h>
int Prize[20],i;
void YsPrize(int x,int y)
{
if(x>80&&y>=1)
Prize[i]=8000;
}
void WsPrize(int a,int b)
{ if(a>85&&b>80)
Prize[i]=4000;
}
void Prizegood(int d)
{ if(d>90)
Prize[i]=2000;
}
void WestPrize(int e,char f)
{ if(e>85&&strcmp(f,"Y")==0)
Prize[i]=1000;
}
void ClassPrize(int g,char h)
{ if(g>80&&strcmp(h,"Y")==0)
Prize[i]=850;
}
struct student
{ char name[20];
int QmGrade;
int BjGrade;
char gb ;
char xb ;
int lw ;
};
void main()
{
int num,r,n,max,k,o,p,sum;
struct student a[20];
printf("请输入学生数:");
scanf("%d",&num);
printf("请输入学生信息:");
for(r=0;r<num;r++)
scanf("%s,%d,%d,%c,%c,%d",&a[r].name,&a[r].QmGrade,&a[r].BjGrade,&a[r].gb,&a[r].xb,&a[r].lw);
for(i=0;i<num;i++)
{ YsPrize(a[i].QmGrade,a[i].lw);
WsPrize(a[i].QmGrade,a[i].BjGrade);
Prizegood(a[i].QmGrade);
WestPrize(a[i].QmGrade,a[i].xb);
ClassPrize(a[i].BjGrade,a[i].gb);
}
for(n=0;n<num;n++)
{ if(max<Prize[n])
max=Prize[n];
}
for(k=0;k<num;k++)
{ if(max==Prize[k])
o=k;
break;
}
for(p=0;p<num;num++)
{ if(Prize[p]==max)
sum+=Prize[p];
}
printf("%s,%d,%d",a[o].name,max,sum);
}
我想说的是,其实你可以把 %s 和 %d 这些分开输入,不要一下子搞这么多本回答被网友采纳
你这还有错误呢
我知道有一堆错。。。