news 2026/11/5 7:13:07

C语言入门:从输入输出到条件判断

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C语言入门:从输入输出到条件判断

昨天讲了系统安装,今天可以继续讲编写程序了。

昨日的作业要先去做下, 昨日这个作业, 是去编写C语言程序, 然后输出以下这样的图形。

程序如下:

怎么样?很简单吧?

去重新复习一回, 每一行当中第二个双引号的前面的那个 \n 究竟是什么, 没错, 它是换行。

上述程序就是输出5行信息,或者说输出了5行字符串。

字符串是C语言的专业术语,就是任意信息的意思。

我们学会了输出,今天我们来学习怎样输入。

一、一个简单的加法程序

要是打算去做一个简易的加法程序, 也就是要输入两个整数, 接着把它们的和给输出, 如此这般的C语言程序该如何去写呢, 瞧:

可能有人又说看不懂了,别着急,听我慢慢道来。

上节课提及, 全部的C语句都得放置于两个大括号之内, 这意味着程序的架构是:

那么大括号里的语句,有4行,也就是4句:

int a, b, c;

scanf("%d%d", &a, &b);

c=a+b;

("%d\n", c);

第1句:int a,b,c;

定义了3个整数变量, 这3个变量分别被起名为a, b, c, 此语句是以像这样的分号结束的, 即int a, b, c;。

有人询问什么是变量, 你把变量视为房子, 定义了三个变量, 分别是a、b、c, 这就等同于购买了三间房。

那么变量前面的 int是什么意思?

int是数据类型,int代表整型,整数。

int a,b,c; 定义3个整型变量。

好比我购置了3间房, 房名分别称作a、b、c, 这3间房仅能用来存放整数。

留意: 变量取名的规则是, 以字母或者下划线_作为起始部位, 随后连着数字、字母或者下划线。

比如以下是合法的变量名:

a a123 _123 _a1 abc

不合法的变量名是:

1a, a#b 123 a-bc-d

第2句: scanf("%d%d", &a, &b);

那用于输入的scanf函数, 它指的是要从键盘那里输入2该整数, 可怎么去晓得是输入2个整数而并非3个呢。

因为scanf的双引号里面,有2个%d。

2个%d,代表输入2个整数,%d是整数。

注意:%d是格式控制符,对应整数。

那儿双引号的后面存在着一个逗号, 接着出现了&a, 还有&b, 这表示, 在输入的2个整数里, 第1个整数会被给予到变量a, 第2个整数会被给予到变量b。

我这里说“给到”是大白话,严格来说是“赋予”。

将scanf("%d%d", &a, &b); 用于从键盘输入两个整数, 把第一个输入的整数给予变量a, 把第二个输入的整数给予变量b。

那可能有人问我要输入实数怎么办?这是一个好问题。

定义了三个变量, 分别是a, b, c, 这三个变量的数据类型为int, int即整数, 意味着这所买的三间房只能是整数房且这三间房只能用来装整数, 也就是a, b, c只能容纳整数。

那如果要装实数,就得买实数房。

float d1, d2, d3;

或者 e1, e2, e3;

float和和int一样,是数据类型。

float单精度实型, 是双精度实型。

实型变量d1, 被定义出来, 实型变量d2, 也被定义出来, 实型变量d3, 同样被定义出来, 这三个实型变量, 变量名分别是d1, d2, d3。

设定两个实型变量, 这两个变量的名字分别被起作e1, e2 ;定义2个实型变量, 变量名分别起名为e1, e2。

且在输入输出之类的函数里头, 那针对整数起对应作用的格式控制符乃是%d, 而针对float这种实数起到对应作用的格式控制符为%f, 还有起到对应作用的格式控制符是%lf。

%lf这里f前面的是小写字母l不是数字123的1。

格式控制符:

%d 对应int型的整数

%f 对应单精度实数float型的单精度实数

%lf 对应型的双精度实数

再次强调:

变量起名有着这样的规则, 它要以字母或者下划线_开始, 之后跟着数字, 或者跟着字母, 又或者跟着下划线。

单精度浮点型float和别的类型之间的区别在于它们各自的精度是不一样的, 要是不了解的话暂时先不去管它, 咱们主要是侧重于入门这块, 而有关更深入的知识等你入门之后就能够自己去探寻获得答案了。

在输入输出函数里头, 针对整数的是%d, 针对float实数的是%f, 与之对应的是%lf。

百分之低位格式符, 这里格式符中f前面的字符, 是小写的拉丁字母l, 并非数字一二三当中的一。一下, 会给出一个例子, 如此, 你便会明了。

第3句: c=a+b;

这句很简单,就是将a和b的值相加,结果赋予变量c。

这边你或许又要发问了, 这a以及b的值究竟是多少? 是100、200, 还是23、89, 又或者是其他的数?

a和b的值由你在程序运行时输入,你输入多少就是多少。

假设你键入10 20, (留意键入之际两个数字之间得用空格来分隔), 如此一来a为10, b为20。

如果你输入20 5, 则a就是20,b就是5。

第4句: ("%d\n", c);

在这里面, 双引号之中出现了一个%d, 这意味着将会输出一个整数,而这个整数究竟是多少呢, 是由它所对应的数据来决定的。

这里%d对应的数据是变量c。

如果程序运行时,输入10 20, 则输出结果就是30。

如果程序运行时,输入100 -99, 则输出结果就是1。

二、编写一个程序,输入两个整数,输出和、差、积、商。

拿到题目先别忙着写,要首先考虑以下几个步骤:

首先进行第1步, 针对此来定义变量, 变量的数量是多少, 变量的类型又是什么, 这里涉及到要买数量多少的房间用于存放数据, 那么, 房间的类型究竟是整型还是实型?

第2步: 需要输入怎样的数据? 输入的数据量是多少呢? (scanf当中应该有几个%d)

第3步:要做什么处理?

第4步:输出什么结果? (里面要多少个&d)

按上述题目,输入两个整数,输出它们的和、差、积、商。

这个程序存在一个小问题, 倘若你所输入的第二个整数为0, 那么在进行除法运算的时候便会出现错误, 而这个问题我们将会在下节课予以解决。

另外,C语言的算法运算符有:+ - * / %

加:+

减:-

乘:*

除去: / (留意这个斜杠, 和换行所用斜杠方向相反, 换行是\n, 从左上朝着右下倾斜)。

取余:%

此取余操作, 举例来说, 设a若是等于10, 而b等于3, 那么c将等于a对b取余的结果;c会是1, 因为10除以3所得到的余数是1。

三、编写一个程序,输入两个实数,输出和。

注意我的变量名是a、b、abc。

运行结果:

我将1.2以及3.4进行输入, 其运行之后所呈现的结果是4., 针对于实数而言, 那份输出的结果在默认的状况下会保留6位小数。

再次强调:输入的两个数据之间以空格隔开。

四、条件语句和关系运算

要是规定去编写一个程序, 这个程序, 要输入两个整数, 之后, 要去输出和、差、积、商, 一定要注意, 要是出现被0除这种情况的话, 是要避免掉的。

如果没有判断是否有被0除的情况,就是刚才那题,程序是:

我们为了避免出现被0除的情况,可以在除法之前做一个判断:

来看, 在求取c4等于a除以b之前, 要先去判定b是不是并非0, 要是b不是0的话, 那就按照正常的除法来计算, 也就是c4等于a除以b。

否则不用除了,直接给c4赋予0。

if(b!=0)是条件语句,

条件语句的格式为:

这里面, if括号当中的b不等于0, 这属于一个关系运算, 有关于关系运算, 它是用于判断两个数据之间大小或者相等关系的, 总共存在6个关系运算, 分别是: 大于, 大于等于, 小于, 小于等于, 等于, 不等于,其符号是:

> >= < 5为假, 10 != 9 为真。

我们可以在程序中加入条件语句来做一些判断。

输入一个整数, 去判别它究竟是奇数还是偶数。假若此数是奇数, 那就输出“奇数”, 要是该数为偶数, 便输出“偶数”。程序如下:

运行结果:

如果输入10,则输出结果为:10是偶数。

如果输入5,则输出结果为:5是奇数。

五、小结

今天的课就讲到这里,今天讲了:

1、数据类型int float

2、格式控制符:

%d 对应int型的整数

%f 对应单精度实数float型的单精度实数

%lf 对应型的双精度实数

3、变量起名的规则是, 要以字母或者下划线_开始, 之后紧接着可跟数字, 或者能够跟字母, 又或者可以跟下划线。

4、输入函数scanf( )

5、进行运算操作时, 用于计算的符号有, 加法运算所使用的正号, 减法运算所运用的负号, 乘法运算采用的星号, 除法运算选取的斜杠, 还有余数运算中应用的百分号。

6、关系运算符, 有大于这个符号(>), 还有大于等于这个符号(>=), 以及小于这个符号(<), 另外还有小于等于这个符号(<=)。

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

ESP32模组料号解读:N/R/H/U后缀含义与选型避坑指南

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

作者头像 李华
网站建设 2026/10/25 7:42:07

JSP家校作业系统源码解析:从环境配置到二次开发全流程

简介&#xff1a;这份资源是面向Java Web初学者与毕业设计学习者的JSP小学家校一体“作业帮”系统完整项目包&#xff0c;围绕小学阶段家校沟通与作业管理场景&#xff0c;实现教师发布作业、家长查看并辅助孩子完成作业的互动流程&#xff0c;适合作为课程设计、毕业设计参考或…

作者头像 李华
网站建设 2026/10/30 15:02:49

The Dark Side of LLMs: Agent-based Attacks for Complete Computer Takeover

文章主要内容总结 本文聚焦大型语言模型(LLMs)驱动的代理及多代理系统的安全漏洞,通过实验评估了18个主流LLM(包括GPT-4、Claude-4、Gemini-2.5等)在三种攻击场景下的脆弱性,揭示了LLM代理可被用作攻击向量以实现对计算机的完全接管。具体内容如下: 攻击场景设计:研究…

作者头像 李华
网站建设 2026/11/4 17:29:43

Exploring LLMs for Predicting Tutor Strategy and Student Outcomes in Dialogues

文章主要内容总结 本文聚焦于探索大型语言模型(LLMs)在预测辅导对话中导师策略和学生结果的能力,通过两个数学辅导对话数据集(MathDial和AlgebraNation)展开研究。具体内容包括: 研究任务:定义了四项核心任务,即预测未来导师动作(策略)、分类当前导师动作、预测对话…

作者头像 李华
网站建设 2026/10/22 12:07:38

Measuring and Analyzing Intelligence via Contextual Uncertainty in Large Language Models using In...

文章主要内容总结 本文聚焦大型语言模型(LLMs)的内在信息处理机制,提出了一种基于信息论的任务无关方法,通过量化“认知轮廓”(Cognitive Profile)分析模型的智能特征。核心思路是利用“熵衰减曲线”(Entropy Decay Curve)追踪模型的归一化预测不确定性随上下文长度的…

作者头像 李华