6.if嵌套

上节课作业讲解

第四题 成绩评级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。

未完待续...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值