C++小程序编写系列(2)

一、核心目标

掌握 if-else(条件判断)和 while(循环),实现支持加减乘除的连续计算器。

二、上一篇练习精简答案(双向温度转换)

复制代码

#include >

#include ip>

using namespace std;

int main() {

double celsius, fahrenheit;

int choice;

cout << "双向温度转换器\n1. 摄氏度→华氏度 2. 华氏度→摄氏度\n选择(1/2):";

cin >> choice;

if (choice == 1) {

cout <:";

cin >> celsius;

fahrenheit = celsius * 9.0/5.0 + 32;

cout << fixed << setprecision(2) << celsius < " << fahrenheit <℉" <

} else if (choice == 2) {

cout <华氏度:";

cin >> fahrenheit;

celsius = (fahrenheit - 32) * 5.0/9.0;

cout << fixed <precision(2) <ahrenheit < " << celsius <℃" < } else {

cout <" < }

return 0;

}

三、实战:多功能连续计算器

1. 完整代码(支持加减乘除 + 循环)
复制代码

#include <iostream>

#include <iomanip>

using namespace std;

int main() {

double a, b, res;

char op; // 运算符(+、-、*、/)

bool isRunning = true; // 控制循环

cout <计算器(输入 'q' 退出)\n支持:+、-、*、/" < while (isRunning) {

// 输入表达式(如 3+5)

cout << "\n请输入表达式(例:2.5*4):";

cin >> a >> op >> b;

// 条件判断:根据运算符计算

if (op == '+') res = a + b;

else if (op == '-') res = a - b;

else if (op == '*') res = a * b;

else if (op == '/') {

if (b == 0) { // 避免除零错误

cout <除数不能为0!" <; // 跳过本次循环,重新输入

}

res = a / b;

} else if (op == 'q') { // 退出指令

isRunning = false;

cout < <;

} else {

cout <:不支持的运算符!" < continue;

}

// 输出结果(保留2位小数)

cout << fixed <precision(2) < << op << b <=" << res <

}

return 0;

}

2. 核心知识点提炼
  1. if-else:根据 op(运算符)执行不同计算逻辑,处理异常(除零、无效运算符);
  1. while 循环:isRunning 为 true 时重复执行,输入 q 则退出;
  1. 异常处理:continue 跳过错误循环,避免程序崩溃。
3. 运行效果
复制代码

简易计算器(输入 'q' 退出)

支持:+、-、*、/

请输入表达式(例:2.5*4):3+5

3.00+5.00=8.00

请输入表达式(例:2.5*4):10/3

10.00/3.00=3.33

请输入表达式(例:2.5*4):7/0

错误:除数不能为0!

请输入表达式(例:2.5*4):q

退出计算器~

四、简易练习

修改代码,新增 "取余(%)" 功能(仅支持整数),提示:else if (op == '%') res = (int)a % (int)b;

相关推荐
kebidaixu22 分钟前
两轮BMS 防打火策略详解
算法
wabs6661 小时前
关于动态规划【力扣1035.不相交的线和53.最大子数组和的思考】
算法·leetcode·动态规划
退休倒计时1 小时前
【每日一题】LeetCode 199. 二叉树的右视图 TypeScript
算法·leetcode·typescript
可编程芯片开发1 小时前
通过MATLAB实现PID控制器,积分分离控制器以及滑模控制器
算法
kebidaixu1 小时前
两轮BMS 短路保护策略详解
算法
王老师青少年编程2 小时前
2026年6月GESP真题及题解(C++二级):完全平方数计数
c++·题解·真题·gesp·二级·2026年6月·完全平方数计数
zwenqiyu2 小时前
非线性字符串数据结构串讲
数据结构·c++·学习·算法
z小猫不吃鱼2 小时前
03 Optimal Brain Surgeon 详解:Hessian 剪枝为什么有效?
算法·机器学习·剪枝
硕风和炜2 小时前
【LeetCode: 1301. 最大得分的路径数目 + DP】
java·算法·leetcode·动态规划·dp·记忆化搜索
用户99045017780092 小时前
做了一个AI诊断,参考倪海厦中医理论,科学养生
算法