讨论 / c++ 结构体写法
13475801359 2020-04-02 19:10:11
点我顶贴 收藏 删除
#include <iostream>

#include <algorithm>

using namespace std;

struct Money

{

char name[20];

int aver = 0;

int discuss = 0;

char ganbu = 'N';

char WestStud = 'N';

int NumofPaper = 0;

int total = 0;

int ra = 0;

}mon[101];

bool cmp(Money a , Money b)

{

if(a.total != b.total) return (a.total > b.total);

else return (a.ra < b.ra);

}

//int price[5] = {8000 , 4000 , 2000 , 1000 , 850};

int main()

{

int n , s = 0 , i;

cin >> n;

for(i = 0; i < n; i++)

{

cin >> mon[i].name;

cin >> mon[i].aver >> mon[i].discuss;

cin >> mon[i].ganbu >> mon[i].WestStud;

cin >> mon[i].NumofPaper;

mon[i].ra = i;

}

for(i = 0; i < n; i++)

{

if(mon[i].aver > 80 && mon[i].NumofPaper >= 1) mon[i].total += 8000;

if(mon[i].aver > 85 && mon[i].discuss > 80) mon[i].total += 4000;

if(mon[i].aver > 90) mon[i].total += 2000;

if(mon[i].aver > 85 && mon[i].WestStud == 'Y') mon[i].total += 1000;

if(mon[i].discuss > 80 && mon[i].ganbu == 'Y') mon[i].total += 850;

s += mon[i].total;

}

sort(mon , mon + n , cmp);

cout << mon[0].name << endl;

cout << mon[0].total << endl;

cout << s << endl;

return 0;

}

#1 15255336420@2023-06-23 08:14:16
回复 删除
#include<bits/stdc++.h>

using namespace std;

struct Student

{

string xingming;

int qimo;

int banji;

char sxue;

char sxibu;

int lunwen;

int jiang;

}a[105];

int main() {

int n;

cin>>n;

int sum=0,max=-100,pos;

for(int i=1;i<=n;i++)

{

cin>>a[i].xingming>>a[i].qimo>>a[i].banji>>a[i].sxue>>a[i].sxibu;

cin>>a[i].lunwen;

if(a[i].qimo>80 && a[i].lunwen>=1)

a[i].jiang+=8000;

if(a[i].qimo>85 && a[i].banji>80)

a[i].jiang+=4000;

if(a[i].qimo>90)

a[i].jiang+=2000;

if(a[i].qimo>85 && a[i].sxibu=='Y')

a[i].jiang+=1000;

if(a[i].banji>80 && a[i].sxue=='Y')

a[i].jiang+=850;

sum+=a[i].jiang;

if(a[i].jiang>max)

{

max=a[i].jiang;

pos=i;

}

}

cout<<a[pos].xingming<<endl<<max<<endl<<sum;

return 0;

}44

查看更多回复
提交回复