上节课作业讲解
第四题 成绩评级1
考察了if语句。
#include <iostream>
using namespace std;
int main() {
int a;
cin >> a;
if (a >= 60)
cout << "及格" << endl;
else
cout << "不及格" << endl;
return 0;
}
第五题 交换
考察了if语句。
#include <iostream>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
if (a < b)
cout << b << endl << a << endl;
else
cout << a << endl << b << endl;
return 0;
}
来吧,一起来学if嵌套吧!
if嵌套
先来看一道题。
第六题 if嵌套练习1
题目描述
给你一个数字n。
- 如果n是2的倍数并且是3的倍数,那么输出1;
- 如果n是2的倍数并且不是3的倍数,那么输出2;
- 如果n不是2的倍数并且是3的倍数,那么输出3;
- 如果n不是2的倍数并且不是3的倍数,那么输出4;
输入格式
一行一个整数n。
输出格式
一行一个整数,代表答案。
样例输入
34
样例输出
2
数据范围
对于 100% 的数据,满足 0 ≤ n ≤ 1000000000000000000。
小冯:怎么取余数和不等于啊?
%和!=。
小冯开始做题了。
过了一会,他做完了。
我说:错的!
小冯委屈地说:哪错了?
你们能找出小冯的代码哪错了吗?
#include <iostream>
using namespace std;
int main() {
int a;
cin >> a;
if (a % 2 == 0)
if (a % 3 == 0)
cout << "1" << endl;
if (a % 2 == 0)
if (a % 3 != 0)
cout << "2" << endl;
if (a % 2 != 0)
if (a % 3 == 0)
cout << "3" << endl;
if (a % 2 != 0)
if (a % 3 != 0)
cout << "4" << endl;
return 0;
}
乍一看还挺对,对吧?
但其实是错的!
为啥捏?
数据类型用错了!
代码应该是这个。
#include <iostream>
using namespace std;
int main() {
long long a;
cin >> a;
if (a % 2 == 0)
if (a % 3 == 0)
cout << "1" << endl;
if (a % 2 == 0)
if (a % 3 != 0)
cout << "2" << endl;
if (a % 2 != 0)
if (a % 3 == 0)
cout << "3" << endl;
if (a % 2 != 0)
if (a % 3 != 0)
cout << "4" << endl;
return 0;
}
小冯,你注意看数据范围。
这里是10的18次方,int只能存大概2*10的9次方,只有long long可以存下。
具体关于数据类型,我们在后面会学习。
还有一种,就是用if嵌套。
看看它的结构。
if (条件1) {
if (条件2) {
语句1;
} else {
语句2;
}
} else {
if (条件3) {
语句3;
} else {
语句4;
}
}
看了格式之后,再来看看这道题吧。
是不是感觉一下子变简单了?
#include <iostream>
using namespace std;
int main() {
long long a;
cin >> a;
if (a % 2 == 0)
if (a % 3 == 0)
cout << "1" << endl;
else
cout << "2" << endl;
else
if (a % 3 == 0)
cout << "3" << endl;
else
cout << "4" << endl;
return 0;
}
作业
第七题 成绩评级2
题目描述
小a考试了!
- 如果成绩大于等于90分,那么输出"优秀"。
- 如果成绩大于等于80分并且小于90分,那么输出"良好"。
- 如果成绩大于等于60分并且小于80分,那么输出"合格"。
- 如果成绩大于等于0分并且小于60分,那么输出"不合格"。
输入格式
一行一个整数score。
输出格式
一行一个字符串,代表答案。
样例输入1
89
样例输出1
良好
样例输入2
45
样例输出2
不合格
数据范围
对于 100% 的数据,满足 0 ≤ score ≤ 100。
未完待续...