让程序读两个数
今天学完,你就能做成这件事: 写出一个程序,从键盘读入两个整数,打印它们的和,再打印较大的那一个。
比如你输入:
7 2
窗口里应该出现:
9
7
昨天的 Hello World 只会说话。今天的程序要听你输入,并做判断。下面按顺序做。
事情 1:先造两只盒子,再把键盘上的数倒进去
在昨天的 main 里,Hello 那一行改成:
int a, b;
cin >> a >> b;
cout << a + b << endl;
保存、编译、运行。黑窗口在等你。输入 7 2,回车。先出现 9,才算这件事做成了。
int a, b; 是声明:先造两只能装整数的盒子,名字叫 a、b。cin >> a >> b; 是读入:从键盘按类型倒进去。

你在 Python 里常写:
a, b = [int(x) for x in input().strip().split()]
那是先读成字,再转成整数。C++ 的盒子类型在声明时就定了,cin 直接往里倒,不必再 int()。
要读入两个整数,下面哪段能编过、也能跑?
为什么必须先声明
Python 里 x = 3,贴纸当场出现。C++ 要先告诉编译器:这只盒子多大、能装什么。编译发生在运行之前,它必须提前知道。

常用的盒子:
int:普通整数。大约 ±21 亿。再大会溢出,算出错的数。long long:更大的整数。班上读很大的数时用它。double:小数。char:一个字符,比如'A'。bool:真或假。

两个 int 相除,结果还是整数:7 / 2 是 3,不是 3.5。余数用 %。这是你今天算和、比大小时就要小心的。
int a = 7, b = 2; 然后 cout << a / b; 屏幕上是多少?
事情 2:再打印较大的那个数
在 cout << a + b 后面接:
if (a > b) {
cout << a << endl;
} else {
cout << b << endl;
}
编译、运行,再输入 7 2。窗口里应是:
9
7
++ 是「盒子里的数加一」,a++ 和 a = a + 1 同一件事。今天比大小用不到,看见同学写,知道就行。
逻辑判断的词换了写法,意思没变:
and→&&or→||not→!

Python 的 not (a > 0 and b > 0),C++ 写成 (a > 0 b > 0)。
为什么判断要写成这样
你已经会 if / elif / else。C++ 没有 elif 这个词,要拆开写:else if。
if a > b:
print(a)
elif a < b:
print(b)
else:
print("equal")
if (a > b) {
cout << a << endl;
} else if (a < b) {
cout << b << endl;
} else {
cout << "equal" << endl;
}
条件外面加括号 ( )。要做的事放进 { }。
三个数比大小、分段算成绩,都是同一件事:先问第一个问题,不行再问下一个。
C++ 里没有 elif。第二档判断要写成 。
花括号是围栏,不是装饰
Python 靠缩进决定谁算一块。C++ 靠 { }。缩进只给人看,编译器不认。
if (a > b)
cout << a << endl;
cout << "done" << endl; // 这行在围栏外,每次都会执行
你以为两行都在 if 里。其实只有第一行受 a > b 管。要两行一起,把它们圈进一对 { }。

看见 switch:按一个整数走不同门。班上会用。今天你用 if / else if 就能做成「打印较大的数」。
a 是 1,b 是 2。下面这段会打印几行?
if (a > b)
cout << a << endl;
cout << b << endl;
今天做成了什么
一份能跑的程序:读两个整数,打印和,再打印较大的那个。
整段可以长这样:
#include <iostream>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
cout << a + b << endl;
if (a > b) {
cout << a << endl;
} else {
cout << b << endl;
}
return 0;
}
明天做第三件事:让程序重复加很多次。