第3章 - 输入输出和运算符
嗨,朋友!我是长安。
上一章我们学会了用变量"记住"数据。但你有没有发现,所有数据都是我们程序员写死在代码里的,用户不能参与。
这一章,我要教你两个超级实用的技能:
- 让用户输入数据(cin)
- 用各种运算符处理数据(+、-、*、/等)
学完这一章,你的程序就能和用户"对话"了!
🎤 获取用户输入
cin 的使用
在 C++ 中,用 cin 来获取用户从键盘输入的数据。
格式:
cin >> 变量名;
第一个输入示例
#include <iostream>
using namespace std;
int main() {
int age; // 先定义变量
cout << "请输入你的年龄:";
cin >> age; // 获取用户输入
cout << "你的年龄是:" << age << " 岁" << endl;
return 0;
}
运行效果:
请输入你的年龄:18
你的年龄是:18 岁
解释:
cout <<- 输出(让程序说话)cin >>- 输入(让用户说话)>>箭头方向:数据从键盘流向变量
记忆技巧
cout的箭头<<指向左边(数据流向屏幕)cin的箭头>>指向右边(数据流向变量)
输入不同类型的数据
#include <iostream>
#include <string>
using namespace std;
int main() {
string name;
int age;
double height;
cout << "请输入你的姓名:";
cin >> name;
cout << "请输入你的年龄:";
cin >> age;
cout << "请输入你的身高(米):";
cin >> height;
cout << "\n==== 你的信息 ====" << endl;
cout << "姓名:" << name << endl;
cout << "年龄:" << age << " 岁" << endl;
cout << "身高:" << height << " 米" << endl;
return 0;
}
运行效果:
请输入你的姓名:张三
请输入你的年龄:20
请输入你的身高(米):1.75
==== 你的信息 ====
姓名:张三
年龄:20 岁
身高:1.75 米
一次输入多个值
你也可以在一行输入多个值:
#include <iostream>
using namespace std;
int main() {
int a, b, c;
cout << "请输入三个数字(用空格分隔):";
cin >> a >> b >> c;
cout << "你输入的数字是:" << a << ", " << b << ", " << c << endl;
return 0;
}
运行效果:
请输入三个数字(用空格分隔):10 20 30
你输入的数字是:10, 20, 30
➗ 算术运算符
现在我们来学习如何用程序进行计算!
基本运算符
| 运算符 | 含义 | 示例 | 结果 |
|---|---|---|---|
+ | 加法 | 5 + 3 | 8 |
- | 减法 | 5 - 3 | 2 |
* | 乘法 | 5 * 3 | 15 |
/ | 除法 | 10 / 2 | 5 |
% | 取余(求模) | 10 % 3 | 1 |
加减乘除示例
#include <iostream>
using namespace std;
int main() {
int a = 10;
int b = 3;
cout << "a = " << a << ", b = " << b << endl;
cout << "a + b = " << (a + b) << endl;
cout << "a - b = " << (a - b) << endl;
cout << "a * b = " << (a * b) << endl;
cout << "a / b = " << (a / b) << endl;
cout << "a % b = " << (a % b) << endl;
return 0;
}
输出:
a = 10, b = 3
a + b = 13
a - b = 7
a * b = 30
a / b = 3
a % b = 1
注意:整数除法
当两个整数相除时,结果也是整数,会丢弃小数部分!
int result = 10 / 3; // 结果是 3,不是 3.333...
如果需要小数结果,至少有一个数要是小数:
double result = 10.0 / 3; // 结果是 3.33333...
取余运算符 (%)
取余运算符 % 返回除法的余数。
cout << 10 % 3; // 输出 1(10 除以 3 余 1)
cout << 15 % 4; // 输出 3(15 除以 4 余 3)
cout << 20 % 5; // 输出 0(20 除以 5 余 0,整除)
用途:
- 判断奇偶数:
num % 2 == 0表示偶数 - 判断能否整除:
a % b == 0表示 a 能被 b 整除
📊 复合赋值运算符
为了简化代码,C++ 提供了复合赋值运算符。
| 运算符 | 等价于 | 示例 |
|---|---|---|
+= | a = a + b | a += 5 |
-= | a = a - b | a -= 3 |
*= | a = a * b | a *= 2 |
/= | a = a / b | a /= 4 |
%= | a = a % b | a %= 3 |
示例
#include <iostream>
using namespace std;
int main() {
int score = 80;
cout << "初始分数:" << score << endl;
score += 10; // 相当于 score = score + 10
cout << "加10分后:" << score << endl;
score -= 5; // 相当于 score = score - 5
cout << "减5分后:" << score << endl;
score *= 2; // 相当于 score = score * 2
cout << "翻倍后:" << score << endl;
score /= 3; // 相当于 score = score / 3
cout << "除以3后:" << score << endl;
return 0;
}
输出:
初始分数:80
加10分后:90
减5分后:85
翻倍后:170
除以3后:56
🔢 自增自减运算符
这是两个非常常用的运算符:
| 运算符 | 含义 | 示例 | 说明 |
|---|---|---|---|
++ | 自增(加1) | a++ 或 ++a | 将 a 的值加1 |
-- | 自减(减1) | a-- 或 --a | 将 a 的值减1 |
示例
#include <iostream>
using namespace std;
int main() {
int count = 10;
cout << "初始值:" << count << endl;
count++; // 加1
cout << "count++ 后:" << count << endl;
count--; // 减1
cout << "count-- 后:" << count << endl;
return 0;
}
输出:
初始值:10
count++ 后:11
count-- 后:10
前置和后置的区别
++a(前置):先加1,再使用a++(后置):先使用,再加1
初学阶段,建议单独使用,不要和其他语句混在一起,避免混淆。
🌟 实战案例
案例1:计算器
#include <iostream>
using namespace std;
int main() {
double num1, num2;
cout << "===== 简易计算器 =====" << endl;
cout << "请输入第一个数字:";
cin >> num1;
cout << "请输入第二个数字:";
cin >> num2;
cout << "\n===== 计算结果 =====" << endl;
cout << num1 << " + " << num2 << " = " << (num1 + num2) << endl;
cout << num1 << " - " << num2 << " = " << (num1 - num2) << endl;
cout << num1 << " * " << num2 << " = " << (num1 * num2) << endl;
cout << num1 << " / " << num2 << " = " << (num1 / num2) << endl;
return 0;
}
运行效果:
===== 简易计算器 =====
请输入第一个数字:10
请输入第二个数字:3
===== 计算结果 =====
10 + 3 = 13
10 - 3 = 7
10 * 3 = 30
10 / 3 = 3.33333
案例2:计算圆的面积和周长
#include <iostream>
using namespace std;
int main() {
const double PI = 3.14159; // 定义常量
double radius;
cout << "请输入圆的半径:";
cin >> radius;
double area = PI * radius * radius; // 面积 = π × r²
double circumference = 2 * PI * radius; // 周长 = 2 × π × r
cout << "\n===== 计算结果 =====" << endl;
cout << "半径:" << radius << endl;
cout << "面积:" << area << endl;
cout << "周长:" << circumference << endl;
return 0;
}
运行效果:
请输入圆的半径:5
===== 计算结果 =====
半径:5
面积:78.5398
周长:31.4159
什么是常量?
用 const 定义的变量叫常量,值不能被修改。
const double PI = 3.14159; // 定义后不能再改变
常量名通常用大写字母。
案例3:温度转换(摄氏度转华氏度)
#include <iostream>
using namespace std;
int main() {
double celsius;
cout << "请输入摄氏温度:";
cin >> celsius;
// 华氏度 = 摄氏度 × 9/5 + 32
double fahrenheit = celsius * 9.0 / 5.0 + 32;
cout << celsius << "°C = " << fahrenheit << "°F" << endl;
return 0;
}
运行效果:
请输入摄氏温度:25
25°C = 77°F
案例4:计算平均分
#include <iostream>
using namespace std;
int main() {
double math, english, chinese;
cout << "===== 成绩计算器 =====" << endl;
cout << "请输入数学成绩:";
cin >> math;
cout << "请输入英语成绩:";
cin >> english;
cout << "请输入语文成绩:";
cin >> chinese;
double total = math + english + chinese;
double average = total / 3;
cout << "\n===== 统计结果 =====" << endl;
cout << "总分:" << total << endl;
cout << "平均分:" << average << endl;
return 0;
}
运行效果:
===== 成绩计算器 =====
请输入数学成绩:95
请输入英语成绩:88
请输入语文成绩:92
===== 统计结果 =====
总分:275
平均分:91.6667
案例5:判断奇偶数
#include <iostream>
using namespace std;
int main() {
int num;
cout << "请输入一个整数:";
cin >> num;
int remainder = num % 2;
cout << "这个数除以2的余数是:" << remainder << endl;
if (remainder == 0) {
cout << num << " 是偶数" << endl;
} else {
cout << num << " 是奇数" << endl;
}
return 0;
}
运行效果:
请输入一个整数:7
这个数除以2的余数是:1
7 是奇数
🎯 小结
这一章我们学习了输入输出和运算符,让我们回顾一下:
| 概念 | 说明 | 示例 |
|---|---|---|
| cin | 获取用户输入 | cin >> age; |
| cout | 输出到屏幕 | cout << "Hello"; |
| + | 加法 | a + b |
| - | 减法 | a - b |
| * | 乘法 | a * b |
| / | 除法 | a / b |
| % | 取余 | a % b |
| += | 复合赋值 | a += 5 |
| ++ | 自增 | a++ |
| -- | 自减 | a-- |
| const | 定义常量 | const double PI = 3.14; |
💪 练习题
动手练习才能真正掌握!来试试这些题目:
- 写一个程序,让用户输入两个数字,输出它们的和、差、积、商
- 写一个程序,让用户输入矩形的长和宽,计算并输出面积和周长
- 写一个程序,让用户输入三门课的成绩,计算并输出总分和平均分
- 写一个程序,让用户输入一个整数,判断它是奇数还是偶数
- 写一个程序,让用户输入商品单价和购买数量,计算总价
点击查看参考答案
题目2 参考答案:
#include <iostream>
using namespace std;
int main() {
double length, width;
cout << "请输入矩形的长:";
cin >> length;
cout << "请输入矩形的宽:";
cin >> width;
double area = length * width;
double perimeter = 2 * (length + width);
cout << "面积:" << area << endl;
cout << "周长:" << perimeter << endl;
return 0;
}
题目5 参考答案:
#include <iostream>
using namespace std;
int main() {
double price;
int quantity;
cout << "请输入商品单价:";
cin >> price;
cout << "请输入购买数量:";
cin >> quantity;
double total = price * quantity;
cout << "总价:¥" << total << endl;
return 0;
}
🚀 下一步
太棒了!你现在已经能让程序和用户互动了,还能进行各种计算。
下一章,我们要学习条件判断,让程序能够根据不同情况做出不同的决定,变得更加"智能"!
➡️ 第4章 - 条件判断
