【问题描述】
小希看到小芳很容易就找到了她满意的工作,他也想去尝试一下,并参考了小芳找工作的方法。
与小芳不同的是,小希希望根据三个条件综合评估来选择。
月薪得分: 月薪/5000*100取整
带薪假得分:有20分,无0分
离家距离得分:不超过2000公里为100分。每超过200公里减10分,不足200公里按200公里计算,直至0分为止。
给定3个公司A、B、C的数据,根据分数最大来判断小希应该接受哪家公司的offer。如果分数相同,按照A、B、C的顺序进行优先选择。
【输入形式】
输入为3行(分别为A、B和C公司的数据),每行包含3个数据,分别表示公司给定的月薪(整数)、有无带薪休假(y-有,n-无)、离家距离(整数),所有的输入保证没有两个公司最终的得分相等。
【输出形式】
输出一行一个字符(A或B或C,表示小希应该选择的公司)
【样例输入】
24723 y 23588 37395 n 32313 36389 n 21061
【样例输出】
B
#include <iostream>
using namespace std;
int money(int n){
return n*100/5000;
}
int vacation(char a){
if (a=='y'){
return 20;
}
else return 0;
}
int distance (int b){ //距离这里情况较多,要仔细分析
int score;
if (b<=2000){
score = 100;
}
if (b>2000&&b%200==0){
score = 100-10*(b-2000);
if (score<0){
score = 0;
}
}
else if(b>2000&&b%200!=0){
score = 100-10*(199+b-2000)/200; //不足200按200算就加199再除200
if (score<0){
score = 0;
}
}
return score;
}
int main(){
int moneya,moneyb,moneyc;
char a,b,c;
int disa,disb,disc;
int asum,bsum,csum;
cin>>moneya>>a>>disa;
cin>>moneyb>>b>>disb;
cin>>moneyc>>c>>disc;
asum = money(moneya)+vacation(a)+distance(disa); //注意如何调用函数,是像命名函数一样
bsum = money(moneyb)+vacation(b)+distance(disb); 把你的输出值放在函数名后
csum = money(moneyc)+vacation(c)+distance(disc);
if (asum>bsum&&bsum>csum||asum>csum&&csum>bsum){
cout<<"A";}
else if(bsum>asum&&asum>csum||bsum>csum&&csum>asum){
cout<<"B";
}
else cout<<"C";
cout<<asum<<endl;
cout<<bsum<<endl;
cout<<csum<<endl;
return 0;
}
大神写的
#include <iostream>
#include <string>
using namespace std;
int Salaryscore(int salary){
return (salary/5000)*100;
}
int Vacationscore(char vacation){
return (vacation == 'y')?20:0;
}
int Distancescore(int distance){
if (distance<=2000){
return 100;
}
else{
int extra = distance - 2000;
int score = 100-((extra + 199)/200)*10;
return (score<0)?0:score;
}
}
int main(){
string company[]={"A","B","C"};
int salary[3];
char vacation[3];
int distance[3];
for (int i=0;i<3;i++){
cin>>salary[i]>>vacation[i]>>distance[i];
}
int score[3];
for (int i =0;i<3;i++){
score[i]=Salaryscore(salary[i])+Vacationscore(vacation[i])+Distancescore(distance[i]);
}
int max = 0;
for(int i =1;i<3;i++){
if(score[i]>score[max]){
max = i;
}
}
cout<<company[max];
return 0;
}