C语言第二章
一.变量1.做计算printf(1213%d,1213);2.算找零printf(100-23%d,100-23);3.为什么要引入变量每次计算时都需要输入数字繁琐4.引入change函数int price0; printf(请输入金额元:); scanf(%d,price); int change100-price; printf(找您:%d元\n,change);5.输出printf和输入scanf在终端进行6.int price0解释定义了一个类型是int名称是price初始值是0的变量7.变量定义变量类型变量名称egint price; int amount; int price,amount;8.变量的名称标识符由数字字母下划线组成数字不能开头一些关键字不能作为变量名称egint二.变量的赋值与初始化1.int price0;和price0的区别int price0;定义了一个类型为int名称为price初始值为0的变量price0是一个式子指把0的值赋给price2.赋值和数学意义的区别数学中ab的值a和b的值相等是关系静态计算机中ab指把b的值赋给a是动作动态3.初始化十一2有系统说明赋值发生在变量定义的时候称为初始化egint price0int price是定义变量0是赋值注意c语言不强调在变量定义时做初始化但在变量第一次被使用前需要做初始化egint change100-price;变量出现在右边4.如果没有初始化#include stdio.h int main() { int i; int j; ji10; printf(%d\n,j); return 0; }这里看课讲的是终端显示乱码但是我用的devc终端显示10终端输出奇怪的结果是因为因为没有对进行第一次参与计算的变量进行初始化导致变量i和j用的是内存的东西而输出10的原因可能是内存里面是105.变量初始化格式变量类型变量名称初始值egint price0;int amount100;多变量定义eg:int price0,amount100;6.表达式是赋值运算符有运算符的式子就叫表达式egprice0change100-price7.c99和ansic的区别//c99 int price0; printf(请输入金额元); scanf(%d,price); int change100-price; printf(找您%d元,change);//ansic int price0; int change100-price; printf(请输入金额元); scanf(%d,price); int change100-price; printf(找您%d元,change);ansic所有的变量定义都在前列,c99的变量定义可以在程序中间8.scanf函数scanf(%d,price);要求scanf这个函数读入下一个整数读到的结果赋值给变量price三.变量输入scanf1.如何让程序读入用户输入的数字int a0; int b0; scanf(%d %d,a,b); printf(%d %d\n,a,b);scanf(%d %d,a,b);中“”里面的内容是要读取你要输入的东西交给后面的两个变量格式和终端输入的数字一致不管printf格式这是输出后的东西你需要在输入时做相同的格式2.egscanf(%d %d,a,b); scanf(%d,%d,a,b); scanf(price%d %d,a,b); scanf(%d %d\n,a,b);//这里的\n不是换行而是你要输入\n四.变量和常量1.常量int change100-price;中100是常量直接写在程序的称为直接量literal2.定义一个常量const int AMOUNT100c99AMOUNT是金额const int AMOUNT100; int price0; printf(请输入金额元:); scanf(%d,price); int changeAMOUNT-price; printf(找您:%d元\n,change);const int AMOUNT100;定义了一个类型const int名称AMOUNT初始值100的常量在第一次使用AMOUNT前赋值是初始化有两个好处1知道这是金额2便于检查3.const修饰符放在int前给变量加一个不变的属性表示这个变量一旦初始化就不能修改4.如果对AMOUNT进行修改AMOUNT90;int price0; AMOUNT90; printf(请输入金额元:);AMOUNT是一个只读的变量不能被赋值5.如果想修改100怎么办const int AMOUNT100;修改为int amount100后面加scanf因为const通常和大写AMOUNT一起int amount100; int price0; printf(请输入金额元); scanf(%d,price); printf(请输入面值); scanf(%d,amount); int changeamount-price; printf(找您%d元,change);终端操作空格或者回车6.scanf怎么放多个变量int a0; int b0; printf(请输入两个整数); scanf(%d %d,a,b); printf(%d%d%d\n,a,b,ab);scanf里面两个%d用空格终端操作空格或者回车如果输入了字符串怎么办输出内存的数字八.浮点数整数运算的结果只有整数部分不然用浮点数1.英尺英寸换算米一个外国人身高5尺7寸用米表示printf(身高英尺和英寸:); int foot; int inch; scanf(%d %d,foot,inch); printf(身高是%f米,(footinch/12)*0.3048);但是实际计算结果是57/12*0.30481.70182.为什么会出现这个问题因为c语言在进行整数运算时会去掉小数点往小的去掉printf(%d,12/5);终端2printf(%d10/3*3);终端9由此看出c语言在进行整数运算时候对每个步骤都会去掉小数点3.解决方案2个110是整数10.0是浮点数用10.0代替printf(%d,10.0/3*3);错误原因%d格式化占位符用于输出int整形数据10.0/310.0是浮点数字面量运算结果是double双精度浮点数修改把%d修改为%fprintf(%f,10.0/3*3);4.浮点数浮点数指带小数点的数值浮点指小数点乱动定点数指小数点不动但在c语言遇不到5.改进printf(身高是%f米,((inchfoot/12.0)*0.3048));printf(身高英尺和英寸:); int inch; int foot; scanf(%d %d,inch,foot); printf(身高是%f米,(inchfoot/12.0)*0.3048);浮点数和整数运算时c语言会把整数换成浮点数结果也是浮点数所以写成%f米这里我感觉很奇怪printf(%f,(footinch/12)*0.3048);c语言在进行整数和浮点数运算时候c语言会把整数换成浮点数结果也是浮点数foot和inch和12是整数0.3048是浮点数那结果也是浮点数用%f但是结果是整数运算的1.5把12换成12.0结果是正确的ai学习结果是inch/12先执行了整数除法导致精度丢失2double关键字整数和浮点数运算浮点数只需要转换inch或foot成浮点数即可让结果是浮点数double是双双精度浮点数表示浮点数类型float意思是单浮点printf(身高英尺和英寸:); double foot; double inch; scanf(%lf %lf,foot,inch); printf(身高是%f米,(footinch/12.0)*0.3048);scanf输入时用lf6.数据类型整数intprintf(%d,…)scanf(%d,…)带小数的数doubleprintf%f,…)scanf(%lf,…)九.表达式1.一个表达式是一系列运算符和算子的结合用来计算一个值amountx*(10.033)*(10.033)*(10.033);total57;countcount1;value(min/2)*LastValue;2.运算符和算子运算符进行运算的动作…算子参与运算的值常数、变量、一个方法的返回值3.计算时间差计算某小时某分钟到某小时某分钟的时间差设置四个变量相减但是由于可能出现借位情况都换算为分钟后再做取余int hour1,minute1; int hour2,minute2; scanf(%d %d,hour1,minute1); scanf(%d %d,hour2,minute2); int t1hour1*60minute1; int t2hour2*60minute2; int t3t2-t1; printf(时间差是%d小时%d分钟,t3/60,t3%60);十.运算符优先级1.写一个程序求平均值int a,b; scanf(%d %d,a,b); double c(ab)/2.0; printf(%d和%d的平均值%f\n,a,b,c);2.运算符优先级表格单目运算符可以理解为不需要括号的正数和负数优先级运算符运算结合关系举例1单目不变自右向左a*b1-单目取负自右向左a*-b2*乘自左向右a*b2/除自左向右a/b2%取余自左向右a%b3加自左向右ab3-减自左向右a-b4赋值自右向左ab3.赋值运算符赋值也是运算也有结果a6的结果是a被赋予的值也就是6ab6——ab64.嵌入式运算符int a6; int b; int c1(ba);不利于阅读容易产生错误5.结合关系一般自左向右单目-和赋值自右向左resultab3c;result2;result(resultresult*2)*6*(result3result);第三行是嵌入式赋值不要写十一.交换变量1.怎么用c语言交换两个变量的值如果用ab;ba;的话b的值赋给aa的值就等于ba的值赋给bb的值就等于b2.怎样交换变量想象两杯水怎么交换引入一个空杯子用一个没有赋值的变量作为中介进行int a3; int b4; int t; ta; ab; bt; printf(a%d,b%d,a,b);这里有个疑问c语言中变量在第一次使用前变量出现在右边不是定义变量需要对这个变量进行初始化但是bt没有让t进行初始化编译为什么没有出错ai学习后了解赋值写入不需要ta;读取使用值必须int ct;定义变量不需要但推荐int t;3.调试点击需要进行断点的代码行数-生成断点-调试下一步光标移至变量可查看当前变量值无法调试工具-编译选项-设定编译器配置-debug工具-编译选项-代码生成/优化-连接器-产生调试信息-yes环境配置-浏览debug变量-鼠标十二.复合赋值和递增递减1.复合赋值五个算数运算符-*/%和复制号结合为复合赋值运算符-*/%total5;totaltotal5;两个运算符之间不要有空格2.做复合赋值时注意括号total(sum100)/2;totaltotal(sum100)/2;total*sum12;totaltotal*(sum12);total/126;totaltotal/(126);3.递增递减运算符是递增运算符--是递减运算符都是单目运算符(一个算子),这个算子必须是变量作用是让这个变量加1或减1countcount1countcount1;4.前缀后缀--变量前缀形式变量--后缀形式a的值是a1以前的值a的值是加了1以后的值a的值都加1在前先1再使用在后先使用再1int a10; printf(a%d,a); printf(a%d,a); printf(a%d,a); printf(a%d,a);5.表达式和运算和表达式的值表达式运算表达式的值count给count加1count原来的值count给count加1count1以后的值count--给count减1count原来的值--count给count减1count-1以后的值不要组合到表达式复杂

相关新闻

在 Elasticsearch 中构建上下文:AI Indices 如何使用更少的 tokens 为更智能的 agent 提供支持

在 Elasticsearch 中构建上下文:AI Indices 如何使用更少的 tokens 为更智能的 agent 提供支持

作者:来自 Elastic Kathleen DeRusso, Matt Nowzari, Apostolos Matsagkas, Peter Pisljar 将 AI agent 上下文存储在 AI Index 中,使用更少的 tokens 为更智能的 agent 提供支持。包含使用 ES|QL 和 Kibana Workflows 的分步演练。 Agent 在回答任何问题…

2026/9/25 14:38:49 阅读更多 →
Path of Building完整指南:10分钟上手流放之路离线Build规划,告别手动算伤害

Path of Building完整指南:10分钟上手流放之路离线Build规划,告别手动算伤害

Path of Building完整指南:10分钟上手流放之路离线Build规划,告别手动算伤害 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding Path of Building&am…

2026/9/28 4:45:55 阅读更多 →
如何 10 分钟搞定 3DS 存档管理?JKSM 备份恢复迁移全攻略

如何 10 分钟搞定 3DS 存档管理?JKSM 备份恢复迁移全攻略

如何 10 分钟搞定 3DS 存档管理?JKSM 备份恢复迁移全攻略 【免费下载链接】JKSM JKs Save Manager for 3DS 项目地址: https://gitcode.com/gh_mirrors/jk/JKSM 如果你把几百小时的游戏心血只存放在一台 3DS 里,那它就随时可能归零。JKSM 是一款开…

2026/9/25 0:39:07 阅读更多 →

最新新闻

ST-GCN骨骼动作识别实战:从数据建模到Python训练避坑指南

ST-GCN骨骼动作识别实战:从数据建模到Python训练避坑指南

简介:这份资源是基于时空图卷积网络(ST-GCN)的骨骼动作识别完整项目,面向计算机、人工智能等相关专业的本科生与研究生,尤其适合作为课程设计、毕业设计或初期项目演示的参考实现。项目覆盖数据处理、模型训练、离线与…

2026/10/1 3:18:26 阅读更多 →
SVM-KNN组合模型实战:串行、并行与级联架构的代码实现与避坑指南

SVM-KNN组合模型实战:串行、并行与级联架构的代码实现与避坑指南

简介:这份资源面向机器学习初学者与需要做分类实验的开发者,围绕支持向量机(SVM)与K近邻(KNN)两种经典算法,重点给出二者组合模型SVM-KNN的MATLAB实现思路。SVM负责初步分类,KNN对预…

2026/10/1 3:18:26 阅读更多 →
C#上位机通过OPCAutomation连接KEPServerEX 6实现曲线监控

C#上位机通过OPCAutomation连接KEPServerEX 6实现曲线监控

简介:一份完整的C# OPC通信示例工程,演示通过OPC自动化接口连接KEPServerEX 6服务器,并借助Windows窗体与图表控件将实时数据绘制成动态曲线。内容涵盖OPC服务器连接、数据项订阅、定时刷新、异常重连与图表优化等关键环节,适合工…

2026/10/1 3:18:26 阅读更多 →
RPM包管理从入门到实践:命令、依赖与rpmbuild打包

RPM包管理从入门到实践:命令、依赖与rpmbuild打包

拿到一台新的 Linux 服务器,尤其是 CentOS、Rocky 或者 RedHat 这类基于 RPM 体系的系统,你总要跟rpm这个命令打交道。不管是装个 MySQL、部署个 Java 环境,还是排查某个文件到底属于哪个软件包,都绕不开它。但说实话,…

2026/10/1 3:18:26 阅读更多 →
Spring Boot房产中介管理系统实战:从数据库设计到部署避坑

Spring Boot房产中介管理系统实战:从数据库设计到部署避坑

上个月刚交付了一个基于Spring Boot的Java Web房产中介管理系统,项目代号1sy6u5r2。从需求核对到生产部署,整整改了三版才稳定。这个项目表面看是典型的增删改查,但真正做起来才发现,房产中介的业务链路比想象中长:房源…

2026/10/1 3:18:26 阅读更多 →
LSTM时间序列预测实战:从数据预处理到PyTorch模型调参全流程

LSTM时间序列预测实战:从数据预处理到PyTorch模型调参全流程

简介:这份资源面向计算机、人工智能、通信工程、自动化等专业的在校学生与教师,也适合希望进阶学习时间序列预测的小白开发者,可用于课程设计、毕业设计、大作业或项目初期立项演示。包内共6个文件,以3个Python源码、2个CSV数据集…

2026/10/1 3:17:26 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →