nyoj60谁获得的奖学金最高
2015-11-06 15:42
288 查看
#include<stdio.h>
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就是一个输入匹配的过程。以后要注意。
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就是一个输入匹配的过程。以后要注意。
相关文章推荐
- 根据枚举HashCode转换为对应枚举值
- 给空签名包进行签名以及找不到keystore证书链问题的解决方案
- 干净退出0MQ
- 设计模式案列
- linux设备驱动之输入(input)子系统——核心层实现
- string.Split()的用法
- Fork and Join: Java也可以轻松地编写并发程序
- Ubuntu上安装JAVA JDK
- scala+play2.2.2+slick2.0.2 + mysql5.0整合之一---基础环境搭建篇
- iOS QQ第三方登实现
- 作怪的Buffer
- JSP注释及scriptlet <%局部%><%!全局%><%=输出%>
- NumberUtils
- 深入浅出:Linux设备驱动之字符设备驱动
- 小议:SharePoint 2010 Upgrade时,Restore Content Database 失败的解决方案?
- OpenCV 基本架构分析(未完成)
- iOS开发——真机调试证书—发布证书
- SOJ 3711 Mountain Road
- 关于googlge浏览器升级到46+版本之后NPAPI 的插件不能用
- 漫游Kafka之过期数据清理