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;

相关推荐
Dlrb12118 小时前
C语言-指针三
c语言·算法·指针·const·命令行参数
Tisfy9 小时前
LeetCode 2540.最小公共值:双指针(O(m+n))
算法·leetcode·题解·双指针
IronMurphy9 小时前
【算法四十七】152. 乘积最大子数组
算法
REDcker9 小时前
有限状态机与状态模式详解 FSM建模Java状态模式与C++表驱动模板实践
java·c++·状态模式
basketball6169 小时前
C++ 构造函数完全指南:从入门到进阶
java·开发语言·c++
淘矿人10 小时前
Claude辅助DevOps实践
java·大数据·运维·人工智能·算法·bug·devops
Cosolar10 小时前
万字详解:RAG 向量索引算法与向量数据库架构及实战
数据库·人工智能·算法·数据库架构·milvus
想唱rap10 小时前
IO多路转接之poll
服务器·开发语言·数据库·c++
落羽的落羽11 小时前
【算法札记】练习 | Week4
linux·服务器·数据结构·c++·人工智能·算法·动态规划