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;

相关推荐
LYFlied2 小时前
【每日算法】LeetCode 22. 括号生成
数据结构·算法·leetcode·面试·职场和发展
fengche19152 小时前
【无标题】keilC编译器版本问题,低版本
c++
桓琰2 小时前
非线性滤波——基于EKF的INS/GPS松组合算法的研究(直接法|EKF|欧拉角)
算法·matlab·卡尔曼滤波算法
想自律的露西西★2 小时前
js.39. 组合总和
前端·javascript·数据结构·算法
johnny2332 小时前
Raft算法理解
算法
zore_c2 小时前
【数据结构】栈——超详解!!!(包含栈的实现)
c语言·开发语言·数据结构·经验分享·笔记·算法·链表
Chen--Xing2 小时前
LeetCode 15.三数之和
c++·python·算法·leetcode·rust
月明长歌2 小时前
【码道初阶】【Leetcode105&106】用遍历序列还原二叉树:前序+中序、后序+中序的统一套路与“先建哪边”的坑
java·开发语言·数据结构·算法·leetcode·二叉树
iAkuya2 小时前
(leetcode)力扣100 16除自身以外数组的乘积(预处理前项后项积)
数据结构·算法·leetcode