nyoj60谁获得的奖学金最高

#include
struct
{
char name[20];
int finalGrade;
int evaluateScore;
char job;
char westStu;
int thesis;
int scholarship;


}data[110];
int main()
{
int n,m,i,sum,max;
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
sum = 0;
for( i = 0;i < m;i++)
{
data[i].scholarship = 0;
scanf("%s %d%d %c %c %d",&data[i].name,&data[i].finalGrade,&data[i].evaluateScore,&data[i].job,&data[i].westStu,&data[i].thesis);
}
for(i = 0;i < m;i++)
{
if(data[i].finalGrade > 80 && data[i].thesis > 0)
{
data[i].scholarship += 8000;
}
if(data[i].finalGrade > 85 && data[i].evaluateScore > 80)
{
data[i].scholarship += 4000;
}
if(data[i].finalGrade > 90)
{
data[i].scholarship += 2000;
}
if(data[i].finalGrade > 85 && data[i].westStu == 'Y')
{
data[i].scholarship += 1000;
}
if(data[i].evaluateScore > 80 && data[i].job == 'Y')
{
data[i].scholarship += 850;
}
}
max = 0;
for(i = 0;i < m-1;i++)
{
if(data[max].scholarship < data[i + 1].scholarship)
{
max = i+1;
}

}
for(i = 0;i < m;i++)
{
sum += data[i].scholarship;
}
printf("%s\n%d\n%d\n",data[max].name,data[max].scholarship,sum);
}

return 0;

}

note:

这里就是一个关于每个人都多个信息,就用到了struct吧信息封装起来; 然后就是这里面的输入多种类型不同的数据的时候,要注意输入字符的时候,会将输入用来隔开数据的空格作为有效数据读进去,这个错误使我浪费了好长时间。scanf就是一个输入匹配的过程。以后要注意。

你可能感兴趣的:(NYOJ)