518 条题解
-
0
m4XEp1 LV 7 @ 2017-06-19 22:42:53
#include <stdio.h>
#include <malloc.h>
typedef struct Student
{
char name[20]; /* 姓 名 /
int score; /期末成绩*/
int sscore; /*评定成绩*/
char ChairMan; /*是否干部*/
char IsWest; /*是否西部*/
int Article; /*论文总数*/
long Price; /*奖金总数*/
}Student;
void GetResult(Student *std, int count)
{
int MaxIndex = 0;
for (int i = 1; i < count; ++i)
{
if (std[i].Price > std[MaxIndex].Price)
{
MaxIndex = i;
}
}
printf("%s\n", std[MaxIndex].name);
printf("%ld\n", std[MaxIndex].Price);
long long sum = 0;
for (int i = 0; i < count; ++i)
{
sum+=std[i].Price;
}
printf("%lld\n", sum);
}
void GetPrice(Student std) /发奖啦*/
{
if (std->score > 80 && std-> Article >= 1) /*期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文*/
{
std->Price += 8000;
}
if (std->score > 85 && std-> sscore > 80) /*期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)*/
{
std->Price += 4000;
}
if (std->score > 90) /*期末平均成绩高于90分(>90)*/
{
std->Price += 2000;
}
if (std->score > 85 && std-> IsWest == 'Y') /*期末平均成绩高于85分(>85)的西部省份学生*/
{
std->Price += 1000;
}
if (std->sscore > 80 && std-> ChairMan == 'Y') /*级评议成绩高于80分(>80)的学生干部*/
{
std->Price += 850;
}
}
int main(int argc, char const *argv[])
{
int n;
scanf("%d", &n);
Student std = (Student)malloc(sizeof(Student)*n); /*动态定义结构体数组*/
for (int i = 0; i < n; ++i)
{
std[i].Price = 0;
scanf("%s", std[i].name);
scanf("%d", &std[i].score);
scanf("%d", &std[i].sscore);
getchar();
scanf("%c", &std[i].ChairMan);
getchar();
scanf("%c", &std[i].IsWest);
scanf("%d", &std[i].Article);
}
for (int i = 0; i < n; ++i)
{
GetPrice(std + i);
}
GetResult(std, n);
return 0;
} -
0@ 2017-06-06 08:59:15
#include<stdio.h>
#include<stdlib.h>
struct student{
char name[100];
int ag;
int er;
char iscadre;
char iswest;
int pq;
int bonus;
};
int main(void)
{
int a,b,c=0,d,e,f,n;
scanf("%d",&n);
struct student *p;
p=(struct student *)malloc(sizeof(struct student)*n);
for(a=0;a<n;a++)
scanf("%s %d %d %c %c %d",p[a].name,&p[a].ag,&p[a].er,&p[a].iscadre,&p[a].iswest,&p[a].pq);
for(a=0;a<n;a++)
{
b=0;
if(p[a].ag>80&&p[a].pq>0)
b+=8000;
if(p[a].ag>85&&p[a].er>80)
b+=4000;
if(p[a].ag>90)
b+=2000;
if(p[a].ag>85&&p[a].iswest=='Y')
b+=1000;
if(p[a].er>80&&p[a].iscadre=='Y')
b+=850;
p[a].bonus=b;
}
d=p[0].bonus;
f=d;
e=0;
for(a=1;a<n;a++)
{
f+=p[a].bonus;
if(d<p[a].bonus)
{
d=p[a].bonus;
e=a;
}
}
puts(p[e].name);
printf("%d\n%d\n",p[e].bonus,f);
return 0;
} -
0@ 2017-05-29 23:33:42
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; int n; struct peo { string name; int prize; }; peo s[114]; int all=0; int main() { s[0].prize=0; cin>>n; for(int i=1;i<=n;i++) { cin>>s[i].name; s[i].prize=0; int sce,scc,paper; string gb,west; cin>>sce>>scc>>gb>>west>>paper; if(sce>80 && paper>=1) s[i].prize+=8000; if(sce>85 && scc>80) s[i].prize+=4000; if(sce>90) s[i].prize+=2000; if(sce>85 && west=="Y") s[i].prize+=1000; if(scc>80 && gb=="Y") s[i].prize+=850; } int bgest=0; for(int i=1;i<=n;i++) { all+=s[i].prize; if(s[i].prize>s[bgest].prize) { bgest=i; } } cout<<s[bgest].name<<endl<<s[bgest].prize<<endl<<all<<endl; }写的有点烦,但是好理解;
-
0@ 2017-05-25 07:20:16
这道题更像是考基础
#include<iostream> #include<string> struct Student{ std::string name; int finalResult; int classResult; char cadre; char studentOfWest; int papers; }; Student initStudent(); int compute(Student student); void computeAllStudents(); int main() { computeAllStudents(); return 0; } Student initStudent() { using namespace std; string name; int finalResult; int classResult; char cadre; char studentOfWest; int papers; cin >> name >> finalResult >> classResult >> cadre >> studentOfWest >> papers; Student temp={ name, finalResult, classResult, cadre, studentOfWest, papers }; return temp; } void computeAllStudents() { using namespace std; int quantity; cin >> quantity; Student *students = new Student[quantity]; for(int i=0;i<quantity;i++) { students[i] = initStudent(); } // compute Student best = {"", 0, 0, 'N', 'N', 0}; int AllMoney = 0; for(int i=0;i<quantity;i++) { if(compute(students[i]) > compute(best)) { best = students[i]; } AllMoney += compute(students[i]); } // print cout << best.name << endl; cout << compute(best) << endl; cout << AllMoney <<endl; } int compute(Student student) { using namespace std; int money=0; if(student.papers != 0 && student.finalResult > 80) { money += 8000; } if(student.finalResult > 85 && student.classResult > 80) { money += 4000; } if(student.finalResult > 90) { money += 2000; } if(student.studentOfWest == 'Y' && student.finalResult > 85) { money += 1000; } if(student.classResult > 80 && student.cadre == 'Y') { money += 850; } return money; } -
0@ 2017-05-15 17:01:08
#include<iostream>
#include<string>
using namespace std;int num = 0;
int tot = 0;
string highname;
int highmon = 0;
struct student
{
string name;
int aver;
int disc;
char is_vip;
char is_west;
int artical;
int money = 0;
};int main()
{
student stu[100];
cin>>num;
for(int i = 0; i<num; i++)
cin>>stu[i].name>>stu[i].aver>>stu[i].disc>>stu[i].is_vip>>stu[i].is_west>>stu[i].artical;
for(int i = 0; i<num; i++)
{
if(stu[i].aver>80 && stu[i].artical>0)
stu[i].money += 8000;
if(stu[i].aver>85 && stu[i].disc>80)
stu[i].money += 4000;
if(stu[i].aver>90)
stu[i].money += 2000;
if(stu[i].aver>85 && stu[i].is_west == 'Y')
stu[i].money += 1000;
if(stu[i].disc>80 && stu[i].is_vip == 'Y')
stu[i].money += 850;
if(stu[i].money>highmon)
{
highmon = stu[i].money;
highname = stu[i].name;
}
tot += stu[i].money;
}
cout<<highname<<endl<<highmon<<endl<<tot<<endl;
} -
0@ 2017-05-15 13:33:40
#include<iostream>
int MAXN=1000;
using namespace std;
int main()
{
int a[MAXN][MAXN];
int b[MAXN];
memset(b,0,sizeof(b));
int n,i,j,s,temp;
int k=0;
cin>>i;
for(n=1;n<=i;n++)
{
for(j=1;j<=6;j++)
{
if(j==1||j==4||j==5){
(char) a[n][j];
}
cin>>a[n][j];
if(a[n][2]>80&&a[n][6]>=1){
b[n]+=8000;
}
if(a[n][2]>85&&a[n][3]>80){
b[n]+=4000;
}
if(a[n][2]>90){
b[n]+=2000;
}
if(a[n][2]>85&&a[n][5]==Y){
b[n]+=1000;
}
if(a[n][3]>80&&a[n][4]==Y){
b[n]+=850;
}
s=b[1];
temp=1;
if (b[n]>s){
s=b[n];
temp=n;
}
k+=b[n];
}
}
cout<<a[temp][1]<<endl;
cout<<b[temp]<<endl;
cout<<k<<endl;
return 0;
} -
0@ 2017-05-15 13:33:27
#include<iostream>
int MAXN=1000;
using namespace std;
int main()
{
int a[MAXN][MAXN];
int b[MAXN];
memset(b,0,sizeof(b));
int n,i,j,s,temp;
int k=0;
cin>>i;
for(n=1;n<=i;n++)
{
for(j=1;j<=6;j++)
{
if(j==1||j==4||j==5){
(char) a[n][j];
}
cin>>a[n][j];
if(a[n][2]>80&&a[n][6]>=1){
b[n]+=8000;
}
if(a[n][2]>85&&a[n][3]>80){
b[n]+=4000;
}
if(a[n][2]>90){
b[n]+=2000;
}
if(a[n][2]>85&&a[n][5]==Y){
b[n]+=1000;
}
if(a[n][3]>80&&a[n][4]==Y){
b[n]+=850;
}
s=b[1];
temp=1;
if (b[n]>s){
s=b[n];
temp=n;
}
k+=b[n];
}
}
cout<<a[temp][1]<<endl;
cout<<b[temp]<<endl;
cout<<k<<endl;
return 0;
} -
0@ 2017-05-08 13:32:15
//不要在意我的命名
#include <stdio.h> typedef struct { char name[20], exam, rank, isMonitor, isWesterner, text; }fuck; int getMoney( fuck data ) { int money = 0; if ( data.exam > 80 && data.text >= 1 ) money += 8000; if ( data.exam > 85 && data.rank > 80 ) money += 4000; if ( data.exam > 90 ) money += 2000; if ( data.exam > 85 && data.isWesterner == 'Y' ) money += 1000; if ( data.rank > 80 && data.isMonitor == 'Y' ) money += 850; return(money); } int main() { int data, total = 0; scanf( "%d", &data ); fuck datas[data]; int max = 0; fuck max_man; for ( int n = 0; n < data; n++ ) { scanf( "%s %d %d %c %c %d", &datas[n].name, &datas[n].exam, &datas[n].rank, &datas[n].isMonitor, &datas[n].isWesterner, &datas[n].text ); int m = getMoney( datas[n] ); if ( m > max ) { max_man = datas[n]; max = m; } total += m; } printf( "%s\n%d\n%d", max_man.name, max, total ); } -
0@ 2017-05-07 12:33:15
直接模拟就好了对吧~
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> #include <iomanip> #include <cstdlib> using namespace std; struct people { string name; int qimo,banji; char ganbu,xibu; int lunwen; int ans; }a[102]; int n; int main() { cin>>n; for(int i=1;i<=n;i++) cin>>a[i].name>>a[i].qimo>>a[i].banji>>a[i].ganbu>>a[i].xibu>>a[i].lunwen,a[i].ans=0; for(int i=1;i<=n;i++) { if(a[i].banji>80&&a[i].ganbu=='Y') a[i].ans+=850; if(a[i].qimo>80&&a[i].lunwen>=1) a[i].ans+=8000; if(a[i].qimo>85&&a[i].banji>80) a[i].ans+=4000; if(a[i].qimo>90) a[i].ans+=2000; if(a[i].qimo>85&&a[i].xibu=='Y') a[i].ans+=1000; } int Max=-1; string k; int tot=0; for(int i=n;i>=1;i--) { tot+=a[i].ans; if(a[i].ans>=Max) { k=a[i].name; Max=a[i].ans; } } cout<<k<<endl; cout<<Max<<endl; cout<<tot<<endl; return 0; } -
0@ 2017-05-06 17:43:52
#include <iostream>
#include <cstdio>
#include <string.h>
#include <cmath>
using namespace std;
const int maxn = 105;
char name[maxn][20];
int re[maxn];
int main(){
int n;
int a,b,c;
char d,e;
scanf("%d",&n);
memset(re,0,sizeof(re));
int maxm = 0;
int m = -1;
int sum = 0;
for(int i=0;i<n;i++){
scanf("%s",name[i]);
scanf("%d%d%c%c%c%c%d",&a,&b,&d,&d,&e,&e,&c);
// cout<<name[i]<<endl;
// cout<<a<<b<<d<<e<<c<<endl;
if(a>90){
re[i] += 2000;
}
if(a>80&&c>=1)
re[i] += 8000;
if(a>85&&b>80)
re[i] += 4000;
if(a>85&&e=='Y')
re[i] += 1000;
if(b>80&&d=='Y')
re[i] += 850;
if(re[i]>maxm){
maxm = re[i];
m = i;
}
sum += re[i];
}
cout<<name[m]<<endl;
cout<<re[m]<<endl;
cout<<sum<<endl;
return 0;
} -
0@ 2017-04-21 23:41:35
#include<iostream>
using namespace std;
int main()
{
string a,g;
int b,c,f,n,money=0,result=0,sum=0;
char d,e;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a>>b>>c>>d>>e>>f;
money=0;
if(b>80&&f>=1)
money+=8000;
if(b>85&&c>80)
money+=4000;
if(b>90)
money+=2000;
if(b>85&&e=='Y')
money+=1000;
if(c>80&&d=='Y')
money+=850;
sum+=money;
if(result<money)
{
result=money;
g=a;
}
}
cout<<g<<endl<<result<<endl<<sum<<endl;
return 0;
} -
0@ 2017-04-21 23:41:02
#include<iostream>
using namespace std;
int main()
{
string a,g;
int b,c,f,n,money=0,result=0,sum=0;
char d,e;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a>>b>>c>>d>>e>>f;
money=0;
if(b>80&&f>=1)
money+=8000;
if(b>85&&c>80)
money+=4000;
if(b>90)
money+=2000;
if(b>85&&e=='Y')
money+=1000;
if(c>80&&d=='Y')
money+=850;
sum+=money;
if(result<money)
{
result=money;
g=a;
}
}
cout<<g<<endl<<result<<endl<<sum<<endl;
return 0;
} -
0@ 2017-04-14 15:55:42
#include<iostream> #include<vector> #include<string> using namespace std; class Student{ public: Student(); friend ostream &operator<<(ostream &os,const Student &m); void BonusCaculate(); void Input(); string name; int final_grade; int class_grade; char student_carde; char western_stu; short int papers; int bonus; }; Student::Student(){ bonus = 0; } void Student::Input(){ cin>>name>>final_grade>>class_grade>>student_carde>>western_stu>>papers; } ostream &operator<<(ostream &os,const Student &m){ os<<m.name<<endl<<m.bonus<<endl; return os; } void Student::BonusCaculate(){ if(final_grade>80&&papers>=1) bonus += 8000; if(final_grade>85&&class_grade>80) bonus += 4000; if(final_grade>90) bonus += 2000; if(western_stu == 'Y'&&final_grade>85) bonus += 1000; if(student_carde == 'Y'&&class_grade>80) bonus += 850; } int main(){ int n,p = 0,total_bonus = 0; cin>>n; vector<Student> students(n); for(int i = 0; i < n; i++){ students[i].Input(); students[i].BonusCaculate(); total_bonus += students[i].bonus; } for(int i = 0; i < n-1;i++){ if(students[p].bonus < students[i+1].bonus) p = i+1; } cout<<students[p]<<total_bonus; return 0; } -
0@ 2017-04-02 14:40:04
//你们无法体会血之哀的孤独
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<iomanip>
using namespace std;
int saber[101]= {0};
int lmf=0;
int nono=0;
int mx=0;
struct jxj
{
string name;
int cj;
int bp;
char gp;
char xb;
int lw;
} a[200];
int main()
{
int n;
cin>>n;
string lmf;
for(int i=1; i<=n; i++)
{
cin>>a[i].name >>a[i].cj>>a[i].bp >>a[i].gp>>a[i].xb >>a[i].lw ;
if(a[i].cj >80&&a[i].lw >0)
saber[i]+=8000;
if(a[i].cj>85&&a[i].bp >80)
saber[i]+=4000;
if(a[i].cj >90)
saber[i]+=2000;
if(a[i].cj >85&&a[i].xb =='Y')
saber[i]+=1000;
if(a[i].bp >80&&a[i].gp =='Y')
saber[i]+=850;
if(saber[i]>mx)
{
mx=saber[i];
lmf=a[i].name ;
}
}
for(int i=1;i<=n;i++)
{
nono+=saber[i];
}
cout<<lmf<<endl<<mx<<endl<<nono;
return 0;
} -
0@ 2017-03-31 18:38:42
#include<stdio.h>
int main()
{
int n,i;
scanf("%d",&n);
char s[n][20];
int final[n];
int class0[n];
char stu[n];
char west[n];
int paper[n];
long money[n];
for(i=0;i<=n-1;i++)
{
scanf("%s %d %d %c %c %d",s[i],&final[i],&class0[i],&stu[i],&west[i],&paper[i]);
money[i]=0;
if (final[i]>80&&paper[i]>0) money[i]=money[i]+8000;
if (final[i]>85&&class0[i]>80) money[i]=money[i]+4000;
if (final[i]>90) money[i]=money[i]+2000;
if (final[i]>85&&west[i]=='Y') money[i]=money[i]+1000;
if (final[i]>80&&stu[i]=='Y') money[i]=money[i]+850;
}
int max=0,mark,sum=0;
for(i=0;i<=n-1;i++)
{
if (money[i]>max)
{
max=money[i];
mark=i;
}
sum=sum+money[i];
}
printf("%s\n",s[mark]);
printf("%d\n",money[mark]);
printf("%d",sum);
return 0;
} -
0@ 2017-03-31 18:38:14
#include<stdio.h>
int main()
{
int n,i;
scanf("%d",&n);
char s[n][20];
int final[n];
int class0[n];
char stu[n];
char west[n];
int paper[n];
long money[n];
for(i=0;i<=n-1;i++)
{
scanf("%s %d %d %c %c %d",s[i],&final[i],&class0[i],&stu[i],&west[i],&paper[i]);
money[i]=0;
if (final[i]>80&&paper[i]>0) money[i]=money[i]+8000;
if (final[i]>85&&class0[i]>80) money[i]=money[i]+4000;
if (final[i]>90) money[i]=money[i]+2000;
if (final[i]>85&&west[i]=='Y') money[i]=money[i]+1000;
if (final[i]>80&&stu[i]=='Y') money[i]=money[i]+850;
}
int max=0,mark,sum=0;
for(i=0;i<=n-1;i++)
{
if (money[i]>max)
{
max=money[i];
mark=i;
}
sum=sum+money[i];
}
printf("%s\n",s[mark]);
printf("%d\n",money[mark]);
printf("%d",sum);
return 0;
} -
0@ 2017-03-20 21:37:59
#include <iostream>
#include <algorithm>
using namespace std;struct list{
int num; //序号
string xm;//姓名
int pm; //期末平均成绩
int bj; //班级评议成绩
char xsgb;//学生干部
char xbsf;//西部省份
int lw; //论文
int sum; //奖金
};list k[101];
int main() {
int n,i,s=0,max=0;
string name;
cin>>n;
for(i=1;i<=n;i++){
k[i].num=i;
cin>>k[i].xm>>k[i].pm>>k[i].bj>>k[i].xsgb>>k[i].xbsf>>k[i].lw;
k[i].sum=0;
if(k[i].pm>80 && k[i].lw>0) //院士奖学金
k[i].sum+=8000;
if(k[i].pm>85 && k[i].bj>80) //五四奖学金
k[i].sum+=4000;
if(k[i].pm>90) //成绩优秀奖
k[i].sum+=2000;
if(k[i].pm>85 && k[i].xbsf=='Y')//西部奖学金
k[i].sum+=1000;
if(k[i].bj>80 && k[i].xsgb=='Y') //班级贡献奖
k[i].sum+=850;
s+=k[i].sum;
if(max<k[i].sum){
max=k[i].sum;
name=k[i].xm;
}
}
cout<<name<<endl<<max<<endl<<s;
return 0;
} -
0@ 2017-03-20 21:37:24
#include <iostream>
#include <algorithm>
using namespace std;struct list{
int num; //序号
string xm;//姓名
int pm; //期末平均成绩
int bj; //班级评议成绩
char xsgb;//学生干部
char xbsf;//西部省份
int lw; //论文
int sum; //奖金
};list k[101];
int main() {
int n,i,s=0,max=0;
string name;
cin>>n;
for(i=1;i<=n;i++){
k[i].num=i;
cin>>k[i].xm>>k[i].pm>>k[i].bj>>k[i].xsgb>>k[i].xbsf>>k[i].lw;
k[i].sum=0;
if(k[i].pm>80 && k[i].lw>0) //院士奖学金
k[i].sum+=8000;
if(k[i].pm>85 && k[i].bj>80) //五四奖学金
k[i].sum+=4000;
if(k[i].pm>90) //成绩优秀奖
k[i].sum+=2000;
if(k[i].pm>85 && k[i].xbsf=='Y')//西部奖学金
k[i].sum+=1000;
if(k[i].bj>80 && k[i].xsgb=='Y') //班级贡献奖
k[i].sum+=850;
s+=k[i].sum;
if(max<k[i].sum){
max=k[i].sum;
name=k[i].xm;
}
}
cout<<name<<endl<<max<<endl<<s;
return 0;
} -
0@ 2017-03-15 19:54:51
#include<iostream>
#include<functional>
#include<queue>
#include<cstring>
#include<string>
#include<algorithm>
#include <vector>
#include<math.h>using namespace std;
struct student
{
string name;
int score;
int cscore;
char leader;
char west;
int paper;
int money;
} v[101];int main()
{
int n,max=0,sum=0,k;
cin>>n;
for(int i=0;i<n;i++)cin>>v[i].name>>v[i].score>>v[i].cscore>>v[i].leader>>v[i].west>>v[i].paper;
for(int i=0;i<n;i++)
{
v[i].money=0;
if(v[i].score>80&&v[i].paper>0)
v[i].money+=8000;
if(v[i].score>85&&v[i].cscore>80)
v[i].money+=4000;
if(v[i].score>90)
v[i].money+=2000;
if(v[i].score>85&&v[i].west=='Y')
v[i].money+=1000;
if(v[i].cscore>80&&v[i].leader=='Y')
v[i].money+=850;
if(v[i].money>max)
{
max=v[i].money;
k=i;
}
sum+=v[i].money;
}
cout<<v[k].name<<endl<<v[k].money<<endl<<sum;
return(0);
} -
0@ 2017-03-12 19:59:27
#include<iostream> #include<string> using namespace std; struct stu { string name; int qimo; int banping; char ganbu; char cibu; int wen; int money; }; int main() { int n,i; cin>>n; stu b[101]; for(i=0;i<n;i++) { cin>>b[i].name>>b[i].qimo>>b[i].banping>>b[i].ganbu>>b[i].cibu>>b[i].wen;b[i].money=0; if(b[i].qimo>80 && b[i].wen>=1)b[i].money+=8000; if(b[i].qimo> 85 && b[i].banping > 80)b[i].money+=4000; if(b[i].qimo>90)b[i].money+=2000; if(b[i].qimo>85 && b[i].cibu=='Y')b[i].money+=1000; if(b[i].banping>80 && b[i].ganbu=='Y')b[i].money+=850; } int k=0;int s=0; for(i=0;i<n;i++) { s=b[i].money+s; if(b[k].money<b[i].money)k=i; } cout<<b[k].name<<endl<<b[k].money<<endl<<s; return 0; }