news 2026/6/16 4:46:58

新手学 C 别死啃语法!第二期:吃透变量与运算符,手写简易计算器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
新手学 C 别死啃语法!第二期:吃透变量与运算符,手写简易计算器

一、开篇回顾 & 前言

上一篇我们搭好了开发环境,亲手写出了带人机交互的小程序,成功迈出了第一步。

很多朋友跟着跑完了代码,也感受到:编程不是死记硬背概念,动手跑起来才学得快

本篇继续沿用「实战优先」的思路,不堆砌长篇理论,我们先做工具、再回头理解知识点。

本篇核心目标:

  1. 搞懂 C 语言里变量是什么、怎么用;
  2. 学会常用算术运算符
  3. 综合知识点,手写一个两数四则简易计算器(支持加减乘除)。

学完本篇,你就能用代码实现「数字计算」,做出第一个真正有点实用价值的小程序。

前置要求:电脑上已有 Dev-C++ 等 C 语言运行环境,会新建、保存、运行.c文件。

二、什么是变量?用大白话讲明白

先抛开书本上的专业定义,举个生活例子:

我们平时用手机记数字、存名字,都会找一个「位置」把内容存起来。在 C 语言里,变量就是用来存放数据的 “容器”

比如:

  • 存放年龄、分数、数字 → 用整型变量
  • 存放小数、价格 → 用浮点型变量
  • 存放名字、文字 → 用字符数组(上篇已经接触过)

1. 最常用的两种变量(入门只学这两个就够)

① 整型int

用来存整数:1、100、-5、2026 这类没有小数点的数字。定义格式:

int 变量名;
② 浮点型float

用来存小数:3.14、99.5、0.88 这类带小数点的数字。定义格式:

float 变量名;

2. 变量赋值与读取

把数据放进容器,就叫赋值;程序取出数据使用,就是读取。示例代码(单独运行测试):

#include <stdio.h> int main(void) { // 定义整型变量 a、b int a; int b; // 给变量赋值 a = 10; b = 20; // 读取变量并打印 printf("a 的值 = %d\r\n", a); printf("b 的值 = %d\r\n", b); return 0; }

运行结果:

a 的值 = 10 b 的值 = 20
补充说明(点到为止,不深挖)
  • %d:格式化占位符,专门用来输出int 整数
  • 变量名建议见名知意,比如num1num2,不要乱用乱码字符;
  • C 语言变量必须先定义,后使用,顺序不能颠倒。

3. 简化写法:定义 + 赋值一步到位

日常开发更常用这种简写方式:

int a = 10; int b = 20;

三、基础算术运算符

有了存放数字的变量,就可以做计算了。C 语言里最常用的四则运算符:

运算符作用示例
+加法a + b
-减法a - b
*乘法(注意不是 ×)a * b
/除法a / b

重点提醒:代码里乘法必须用*,除法必须用/,不能用数学里的 × ÷。

我们先写一段代码,测试加减乘除:

#include <stdio.h> int main(void) { int a = 10; int b = 3; printf("a + b = %d\r\n", a + b); printf("a - b = %d\r\n", a - b); printf("a * b = %d\r\n", a * b); printf("a / b = %d\r\n", a / b); return 0; }

运行结果:

a + b = 13 a - b = 7 a * b = 30 a / b = 3

小知识点:两个整数相除,结果只会保留整数部分,小数会被直接舍去,后面实战计算器我们再解决小数问题。

四、综合实战:手写简易四则计算器(本篇核心案例)

前面知识点全部铺垫完成,现在我们整合:变量定义+键盘输入+运算符+输出结果做一个人机交互计算器

  1. 手动输入两个数字;
  2. 程序自动计算加减乘除;
  3. 一次性输出所有结果。

完整代码(直接复制运行)

#include <stdio.h> int main(void) { // 定义两个浮点型变量,支持小数计算 float num1, num2; float add, sub, mul, div; // 提示用户输入数字 printf("===== 简易四则计算器 =====\n"); printf("请输入第一个数字:"); scanf("%f", &num1); printf("请输入第二个数字:"); scanf("%f", &num2); // 执行四则运算 add = num1 + num2; sub = num1 - num2; mul = num1 * num2; div = num1 / num2; // 输出所有计算结果 printf("\n===== 计算结果 =====\n"); printf("加法:%.2f + %.2f = %.2f\r\n", num1, num2, add); printf("减法:%.2f - %.2f = %.2f\r\n", num1, num2, sub); printf("乘法:%.2f × %.2f = %.2f\r\n", num1, num2, mul); printf("除法:%.2f ÷ %.2f = %.2f\r\n", num1, num2, div); return 0; }

代码逐段讲解(新手能看懂即可)

  1. float num1, num2;一次性定义两个浮点型变量,支持输入小数,比纯整数计算器更实用。
  2. scanf("%f", &num1);读取键盘输入的小数;注意:变量前面必须加&符号,这是新手第一大坑。
  3. %.2f格式化输出,表示保留 2 位小数,界面更整洁美观。

运行演示

===== 简易四则计算器 ===== 请输入第一个数字:10.5 请输入第二个数字:2.5 ===== 计算结果 ===== 加法:10.50 + 2.50 = 13.00 减法:10.50 - 2.50 = 8.00 乘法:10.50 × 2.50 = 26.25 除法:10.50 ÷ 2.50 = 4.20

到这里,你的第一个实用小工具就完成了!

五、本期新手高频踩坑合集(必看)

结合本篇内容,整理最容易出现的错误,遇到直接对照修复:

  1. scanf 忘记加&符号浮点 / 整型变量用scanf读取输入,变量名前面必须加&,漏写直接程序异常。❌ 错误:scanf("%f", num1);✅ 正确:scanf("%f", &num1);

  2. 运算符写错乘法写成×、除法写成÷,中文符号编译直接报错,必须用*/

  3. 占位符不匹配

    • 整数用%d,小数用%f
    • 混用会出现乱码、数字异常。
  4. 中文符号问题括号、引号、分号全程使用英文输入法,老生常谈但 90% 新手反复踩坑。

  5. 除数为 0如果第二个数字输入 0,除法会运行异常,后面我们学习判断语句再优化这个问题。

六、本篇总结

  1. 理解了变量的作用:用来存储各类数据;
  2. 掌握入门两大类型:int(整数)、float(小数);
  3. 学会加减乘除算术运算符,以及格式化输入输出;
  4. 独立完成实战案例:交互式四则计算器

从单纯打印文字 → 接收输入 → 数字运算,你的代码已经具备简单的逻辑能力了。

七、下期预告

下一篇我们学习if 条件判断语句,继续优化当前计算器:

  1. 增加「除数不能为 0」的容错判断;
  2. 做一个选择功能计算器:输入序号,选择单独执行加 / 减 / 乘 / 除;
  3. 延伸案例:简易成绩判断、数字大小比较。

依旧全程实战,不啃枯燥语法,跟着动手写就对了。

大家运行代码遇到任何问题,都可以在评论区留言交流,我们下期再见!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/16 4:44:41

Codex/Claude Code对接国产大模型实操指南

1. 破除迷思&#xff1a;Codex与Claude Code根本不是“OpenAI/Anthropic专属工具”很多人点开Codex或Claude Code的官网&#xff0c;第一眼看到“Sign in with OpenAI”或“Anthropic Account Required”&#xff0c;下意识就关掉页面&#xff0c;转头去搜“codex api key分享”…

作者头像 李华
网站建设 2026/6/16 4:44:39

职场隐私保护革命:智能窗口隐藏工具完全指南

职场隐私保护革命&#xff1a;智能窗口隐藏工具完全指南 【免费下载链接】Boss-Key 老板来了&#xff1f;快用Boss-Key老板键一键隐藏静音当前窗口&#xff01;上班摸鱼必备神器 项目地址: https://gitcode.com/gh_mirrors/bo/Boss-Key 在数字化办公环境中&#xff0c;个…

作者头像 李华
网站建设 2026/6/16 4:40:49

Java 反射机制完整入门详解

一、什么是 Java 反射机制Java 反射机制&#xff1a;在程序运行阶段&#xff0c;动态获取类的完整结构&#xff08;类名、属性、方法、构造器&#xff09;&#xff0c;并可以实例化对象、调用任意方法、读写成员变量&#xff0c;这种动态操作类信息的能力就叫反射。正常编码是n…

作者头像 李华
网站建设 2026/6/16 4:39:56

Cadence Allegro 16.6异形焊盘制作全攻略:从原理到实战避坑

1. 项目概述&#xff1a;从标准到定制的跨越在电子设计自动化&#xff08;EDA&#xff09;领域&#xff0c;Cadence Allegro 16.6 是进行高速、高密度PCB设计的行业标杆工具。对于很多硬件工程师和PCB Layout工程师来说&#xff0c;绘制标准的圆形、方形或椭圆形焊盘是家常便饭…

作者头像 李华
网站建设 2026/6/16 4:39:16

金融大模型落地能力评测:稳准可解释的工程化实践

1. 这份报告不是“排行榜”&#xff0c;而是金融大模型落地能力的压力测试最近朋友圈和行业群被一份《金融领域大模型年度评测报告》刷屏&#xff0c;标题里赫然出现“阶跃星辰/财跃星辰大模型表现优秀”——但如果你点开就急着找排名、抄榜单、比参数&#xff0c;那很可能从第…

作者头像 李华