511 条题解
-
0
tommyfj LV 4 @ 2 年前
-
02 年前@
-
03 年前@
使用c++的类很简单就用过了,主要注意字符串的处理,直接建立一个学生的类别
一次ac!!,庆祝我的第一个c++程序
#include<iostream>
using namespace std;class CStu
{
public:
string name[100];
int score;
int classscore;
char student;
char position;
int number;
int prize;
CStu()
{
prize = 0;
}
};
int main()
{
int a=0;
int max = 0;
CStu stu[100];
cin >> a;
int total=0;
for (int i = 0; i < a; i++)
{
cin >> stu[i].name[50];
cin >> stu[i].score;
cin >> stu[i].classscore;
cin >> stu[i].student;
cin >> stu[i].position;
cin >> stu[i].number;
}
for (int b = 0; b < a; b++)
{
if ((stu[b].score > 80) && (stu[b].number >= 1))
{
stu[b].prize = stu[b].prize + 8000;
}//院士奖学金
if ((stu[b].score > 85) && (stu[b].classscore > 80))
{
stu[b].prize = stu[b].prize + 4000;
}//五四奖学金
if (stu[b].score > 90)
{
stu[b].prize = stu[b].prize + 2000;
}//成绩优秀奖学金
if ((stu[b].score > 85) && (stu[b].position == 'Y'))
{
stu[b].prize = stu[b].prize + 1000;
}//西部奖学金
if ((stu[b].classscore > 80) && (stu[b].student == 'Y'))
{
stu[b].prize = stu[b].prize + 850;
}//班级贡献奖学金
}
max = stu[0].prize;
total = 0;
for (int i = 0; i < a; i++)
{
if (max < stu[i ].prize)
{
max = stu[i].prize;
}
total = total + stu[i ].prize;
}
for (int i = 0; i < a; i++){
if (stu[i].prize == max)
{
cout << stu[i].name[50] << endl;
break;
}
}
cout << max << endl << total << endl;
return 0;
} -
03 年前@
#include<iostream>
using namespace std;class CStu
{
public:
string name[100];
int score;
int classscore;
char student;
char position;
int number;
int prize;
CStu()
{
prize = 0;
}
};
int main()
{
int a=0;
int max = 0;
CStu stu[100];
cin >> a;
int total=0;
for (int i = 0; i < a; i++)
{
cin >> stu[i].name[50];
cin >> stu[i].score;
cin >> stu[i].classscore;
cin >> stu[i].student;
cin >> stu[i].position;
cin >> stu[i].number;
}
for (int b = 0; b < a; b++)
{
if ((stu[b].score > 80) && (stu[b].number >= 1))
{
stu[b].prize = stu[b].prize + 8000;
}//院士奖学金
if ((stu[b].score > 85) && (stu[b].classscore > 80))
{
stu[b].prize = stu[b].prize + 4000;
}//五四奖学金
if (stu[b].score > 90)
{
stu[b].prize = stu[b].prize + 2000;
}//成绩优秀奖学金
if ((stu[b].score > 85) && (stu[b].position == 'Y'))
{
stu[b].prize = stu[b].prize + 1000;
}//西部奖学金
if ((stu[b].classscore > 80) && (stu[b].student == 'Y'))
{
stu[b].prize = stu[b].prize + 850;
}//班级贡献奖学金
}
max = stu[0].prize;
total = 0;
for (int i = 0; i < a; i++)
{
if (max < stu[i ].prize)
{
max = stu[i].prize;
}
total = total + stu[i ].prize;
}
for (int i = 0; i < a; i++){
if (stu[i].prize == max)
{
cout << stu[i].name[50] << endl;
break;
}
}
cout << max << endl << total << endl;
return 0;
} -
03 年前@
-
03 年前@
//AC代码,但做了点小改动
#include <bits/stdc++.h>
using namespace std;
long long n,q[200],b[200],l[200],pri,maxx,t,sum;
char g[200],x[200];
string s[200];
int mian(){
cin>>n;
for(int i=1;i<=n;i++)cin>>s[i]>>q[i]>>b[i]>>g[i]>>x[i]>>l[i];
for(int i=1;i<=n;i++)//几个判断自己xiangxiang
{
if(q[i]>80&&l[i]>=1)pri+=8000;
if(q[i]>85&&b[i]>80)pri+=4000;
if(q[i]>90)pri+=2000;
if(q[i]>85&&x[i]=='Y')pri+=1000;
if(b[i]>80&&g[i]=='Y')pri+=850;
sum+=pri;if(pri>maxx){maxx=pri;t=i;}pri=0;
}
cout<<s[t]<<endl<<maxx<<endl<<sum;
return 0;
} -
03 年前@
#include <iostream>
#include <vector>
using namespace std;
struct stu
{
string name, lead, west;
int fin, grade, paper;
int money = 0;
};
int main()
{
int n;
cin >> n;
vector<stu> stus(n);
int max = 0;
int where = 0;
int sum = 0;
for (int i = 0; i != n; i++)
{
cin >> stus[i].name >> stus[i].fin >> stus[i].grade >> stus[i].lead >> stus[i].west >> stus[i].paper;
if (stus[i].fin > 80 && stus[i].paper != 0){
stus[i].money += 8000;}
if (stus[i].fin > 85 && stus[i].grade > 80){
stus[i].money += 4000;}
if (stus[i].fin > 90){
stus[i].money += 2000;}
if (stus[i].fin > 85 && stus[i].west == "Y"){
stus[i].money += 1000;}
if (stus[i].grade > 80 && stus[i].lead == "Y"){
stus[i].money += 850;}
sum+=stus[i].money;
}
for (int i = 0; i != n; i++)
{
if (max < stus[i].money)
{
max = stus[i].money;
where = i;
}
}
cout << stus[where].name << endl
<< stus[where].money << endl
<< sum << endl;
} -
03 年前@
#include<iostream>
using namespace std;
struct STUDENT{
string name;
int n1,n2;
char xsgb,xb;
int lw;
int jxj;
};
int main(){
int n;
int sum=0;
cin>>n;
struct STUDENT stu[n];
struct STUDENT zdz;
zdz.jxj=0;
for(int i=0;i<n;i++)stu[i].jxj=0;
for(int i=0;i<n;i++){
cin>>stu[i].name>>stu[i].n1>>stu[i].n2>>stu[i].xsgb>>stu[i].xb>>stu[i].lw;
if(stu[i].n1>80&&stu[i].lw>=1)stu[i].jxj+=8000;
if(stu[i].n1>85&&stu[i].n2>80)stu[i].jxj+=4000;
if(stu[i].n1>90)stu[i].jxj+=2000;
if(stu[i].n1>85&&stu[i].xb=='Y')stu[i].jxj+=1000;
if(stu[i].n2>80&&stu[i].xsgb=='Y')stu[i].jxj+=850;
if(stu[i].jxj>zdz.jxj)zdz=stu[i];
sum+=stu[i].jxj;
}
cout<<zdz.name<<endl<<zdz.jxj<<endl<<sum;
return 0;}
-
03 年前@
#include<iostream>
#include<string>
using namespace std;int main()
{
int stdNum, averageScore, commentScore, papareNum;
string name,iscadre,iswest,maxName;
int allSum = 0, perSum = 0, maxSum = 0;
cin >> stdNum;
for (int i = 0; i < stdNum; i++)
{
cin >> name >> averageScore >> commentScore >> iscadre >> iswest >> papareNum;
if (papareNum>0&&averageScore>80) //院士奖学金
{
perSum += 8000;
}
if (averageScore>85&&commentScore>80) //五四奖学金
{
perSum += 4000;
}
if (averageScore>90) // 成绩优秀奖
{
perSum += 2000;
}
if (iswest=="Y"&&averageScore>85) // 西部奖学金
{
perSum += 1000;
}
if (iscadre=="Y"&&commentScore>80) // 班级贡献奖
{
perSum += 850;
}
if (perSum>maxSum)
{
maxSum = perSum;
maxName = name;
}
allSum += perSum;
perSum = 0;
}
cout << maxName << endl;
cout << maxSum << endl;
cout << allSum << endl;
return 0;
} -
03 年前@
-
04 年前@
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,score1,score2,sum=0,max=0,total=0,x,i;
char a,b;
string name,maxn;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>name>>score1>>score2>>a>>b>>x;
if(score1>80 && x>0)//判断是否获得院士奖学金
sum+=8000;
if(score1>85 && score2>80)//判断是否获得五四奖学金
sum+=4000;
if(score1>90)//判断是否获得成绩优秀奖
sum+=2000;
if(score1>85 && b=='Y')//判断是否获得西部奖学金
sum+=1000;
if(score2>80 && a=='Y')//判断是否获得班级贡献奖
sum+=850;
total+=sum;//累加奖学金
if(sum>max)//找出最牛学生
maxn=name,max=sum;//sum的用处
sum=0;
}
cout<<maxn<<endl<<max<<endl<<total;
return 0;
} -
04 年前@
。
-
04 年前@
简单的结构体问题
```c
#include <stdio.h>
struct student
{
char name[30];
int score1;
int score2;
char y1;
char y2;
int num;
}st[120];
int main()
{
int n=0;
scanf("%d",&n);
int max=0,all=0;
int who;
for(int i=0;i<n;i++)
{
scanf("%s %d %d %c %c %d",&st[i].name,&st[i].score1,&st[i].score2,&st[i].y1,&st[i].y2,&st[i].num);
int prize=0;
if (st[i].score1>80&&st[i].num>0)
prize+=8000;
if (st[i].score1>85&&st[i].score2>80)
prize+=4000;
if (st[i].score1>90)
prize+=2000;
if (st[i].score1>85&&st[i].y2=='Y')
prize+=1000;
if (st[i].score2>80&&st[i].y1=='Y')
prize+=850;if (prize>max)
{
max=prize;
who=i;
}
all+=prize;
}
printf("%s\n%d\n%d",st[who].name,max,all);
return 0;
}
``` -
04 年前@
-
04 年前@
-
04 年前@
-
04 年前@
结构体和if的简单练手题
-
04 年前@
谔谔
-
04 年前@
用结构体模拟即可
cpp
#include<iostream>
#include<string>
using namespace std;
struct student{
string a;
int o,oo,ooo;
char on,ok;
}b[100];
main()
{
int n,tmp[100]={0},max=0,sum=0,k,a,ba;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>b[i].a>>b[i].o>>b[i].oo>>b[i].on>>b[i].ok>>b[i].ooo;
if(b[i].o>80&&b[i].ooo) tmp[i]+=8000;
if(b[i].o>85&&b[i].oo>80) tmp[i]+=4000;
if(b[i].o>90) tmp[i]+=2000;
if(b[i].o>85&&b[i].ok=='Y') tmp[i]+=1000;
if(b[i].oo>80&&b[i].on=='Y') tmp[i]+=850;
sum+=tmp[i];
if(tmp[i]>max)
{
max=tmp[i];
k=i;
}
}
cout<<b[k].a<<endl<<max<<endl<<sum;
return 0;
}
``` -
05 年前@
思路:暴力模拟,祝**AC**