/*
* 程序的版权和版本声明部分:
* Copyright (c) 2014,郑州大学SIAS国际学院
* 作 者: 王 杰
* 完成日期:2014 年 1 月 15 日
*
* 对任务及求解方法的描述部分:
* 输入描述: 略或见注释、总结
* 问题描述: 略或见注释、总结
* 程序输出: 略或见注释、总结
* 问题分析: 略或见注释、总结
* 算法设计: 略或见注释、总结
*/
#include<stdio.h>
#include<string.h> //有点疑问,在编译器里不加string头文件也可以通过,但是在OJ上提交就编译错误,加上就通过......
int main()
{
int n,m;
char name[23];
char name1[23];
int qim,banj,lunw;
char ganb,xibu;
int jiangj,sum,zuid;
int t;
scanf("%d",&n);
//printf("%d\n",n); //出错的时候的找错方法,就是把变量每个状态对应的值printf
while(n--){
sum=zuid=0;
scanf("%d",&m);
//printf("%d\n",m);
while(m--){ //每输入一个人的就求出结果,然后保存到数组里,直到m个人的全部计算完
//scanf("%s",&name[m][]);
//gets(name);
//getchar();
scanf("%s %d %d %c %c %d",name,&qim,&banj,&ganb,&xibu,&lunw); //这里的格式控制符之间要有一个空格......
//这里还有一个小不解,输入一个字符串对于数组,加&与不加都一样......
//printf("%d %d %c % c %d\n",qim,banj,ganb,xibu,lunw);
jiangj=0;
if(qim>80 && lunw>=1){
jiangj+=8000;
}
if(qim>85 && banj>80){
jiangj+=4000;
}
if(qim>90){
jiangj+=2000;
}
if(qim>85 && xibu=='Y'){
jiangj+=1000;
}
if(banj>80 && ganb=='Y'){
jiangj+=850;
}
if(jiangj>zuid){ //要注意变量每个时刻的值,特别是要常用一个变量的时候
//t=m; //t的作用是路标,记住当前奖金最大的人的名字所在的数组位置(行)
strcpy(name1,name); //这个函数还不是太了解,导致浪费了很多时间
}
sum+=jiangj;
//printf("%d %d\n",jiangj,sum); //出错的时候的找错方法,就是把变量每个状态对应的值printf
zuid=zuid>=jiangj?zuid:jiangj;
//printf("%d %d\n",jiangj,zuid);
}
//printf("%s\n",name[t]);
printf("%s\n",name1);
printf("%d\n",zuid);
printf("%d\n",sum);
}
return 0;
}
运行结果:
strcpy函数:
#include <iostream>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
while(n--){
char name[21],name1[21];
scanf("%s",name); //&name 也可以,怎么回事?
strcpy(name1,name);
printf("%s\n",name1);
}
return 0;
}
运行结果:
总结:详见注释。加强库函数的学习