原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2004
用if,else语句:
AC代码一:
#include <bits/stdc++.h>
using namespace std;
int n;
int main(){
while(cin >> n){
if(n >= 90 && n <= 100) cout << "A" << endl;
else if(n >= 80 && n <= 89) cout << "B" << endl;
else if(n >= 70 && n <= 79) cout << "C" << endl;
else if(n >= 60 && n <= 69) cout << "D" << endl;
else if(n >= 0 && n <= 59) cout << "E" << endl;
else cout << "Score is error!" << endl;
}
return 0;
}
AC代码二:
#include <bits/stdc++.h>
using namespace std;
int n;
int main(){
while(cin >> n){
if(n > 100 || n < 0) cout << "Score is error!" << endl;
else{
if(n >= 90) cout << "A" << endl;
else if(n >= 80) cout << "B" << endl;
else if(n >= 70) cout << "C" << endl;
else if(n >= 60) cout << "D" << endl;
else cout << "E" << endl;
}
}
return 0;
}
switch语句:
AC代码一:
#include <bits/stdc++.h>
using namespace std;
int n;
int main(){
while(cin >> n){
if(n > 100 || n < 0) {
cout << "Score is error!" << endl;
continue;
}
int grade = n / 10;
switch(grade){
case 10:
case 9: cout << "A" << endl; break;
case 8: cout << "B" << endl; break;
case 7: cout << "C" << endl; break;
case 6: cout << "D" << endl; break;
default: cout << "E" << endl; break;
}
}
return 0;
}
有第一重if一定要加上一个continue,不然样例123的时候输出会多一个E。
AC代码二:
#include <bits/stdc++.h>
using namespace std;
int n;
int main(){
while(cin >> n){
if(n > 100 || n < 0) {
cout << "Score is error!" << endl;
}
else {
int grade = n / 10;
switch(grade){
case 10:
case 9: cout << "A" << endl; break;
case 8: cout << "B" << endl; break;
case 7: cout << "C" << endl; break;
case 6: cout << "D" << endl; break;
default: cout << "E" << endl; break;
}
}
}
return 0;
}
给第一重if匹配一个else语句。