当前位置:网站首页>C语言程序设计笔记(浙大翁恺版) 第三周:判断
C语言程序设计笔记(浙大翁恺版) 第三周:判断
2022-08-09 14:23:00 【CS_Lee_】
按照中国大学MOOC上浙江大学翁恺老师主讲的版本所作,B站上也有资源。原课程链接如下:
https://www.icourse163.org/course/ZJU-9001
由于是大三抽空回头整理的,所以可能前五章会记的内容比较简略。此外,作为选学内容的A0:ACLLib的基本图形函数和链表两章也没有做。西电的考试是机试,理论上学到结构体就能够应付考试了,但为了以后的学习考虑建议全学。
其他各章节的链接如下:
判断
编程练习解析部分的几个细节:
如何输入a
和b
?
scanf("%d %d ", &a, &b);
scanf("%d %d\n", &a, &b);
scanf("price%d %d", &a, &b);
int foot = cm / 30.48;
将浮点数类型的运算结果保存在一个整数变量里会自动做转换,这是C语言允许的
判断
做判断
if
语句根据条件决定做还是不做
如果
// interval2.c
#include <stdio.h>
int main()
{
int hour1, minute1;
int hour2, minute2;
scanf("%d %d", &hour1, &minute1);
scanf("%d %d", &hour2, &minute2);
int ih = hour2 - hour1;
int im = minute2 - minute1;
if ( im <0 ) {
im = 60 + im;
ih --;
}
printf("时间差是%d小时%d分。\n", ih, im);
return 0;
}
判断的条件
关系运算,做比较的运算符
条件
计算两个值之间的关系,所以叫做关系运算
关系运算的结果
当两个值的关系符合关系运算符的预期时,关系运算的结果为整数1,否则为整数0
printf("%d\n", 5==3);
printf("%d\n", 5>3);
printf("%d\n", 5<=3);
优先级
所有的关系运算符的优先级比算术运算的低,但是比赋值运算的高
7 >= 3 + 4
int r = a>0;
判断是否相等的==
和!=
的优先级比其他的低,而连续的关系运算是从左到右进行的
5 > 3 == 6 > 4
6 > 5 > 4
a == b == 6
a == b > 0
找零计算器
判断,注释,流程图
找零计算器
找零计算器需要用户做两个操作:输入购买的金额,输入支付的票面,而找零计算器则根据用户的输入做出相应的动作:计算并打印找零,或告知用户余额不足以购买
从计算机程序的角度看,这就是意味着程序需要读用户的两个输入,然后进行一些计算和判断,最后输出结果
注释
注释(comment)插入在程序代码中,用来向读者提供解释信息。它们对于程序的功能没有任何影响,但是往往能使得程序更容易被人类读者理解
//
是C99的注释,ANSI C不支持
/* */
注释
延续数行的注释,要用多行注释的格式来写。多行注释由一对字符序列”/*
“开始,而已”*/
“结束
也可以用于一行内的注释。 如:int ak=47 /* 36*/, y=9;
否则的话
如果条件不成立呢?
else
else
=否则的话
IF语句再探
一个基本的if
语句由一个关键字if
开头,跟上在括号里的一个表示条件的逻辑表达式,然后是一对大括号”{}
“之间的若干条语句。如果表示条件的逻辑表达式的结果不是零,那么就执行后面跟着的这对大括号的语句,否则就跳过这些语句不执行,而继续下面的其他语句
if
语句这一行结束的时候并没有表示语句结束的”;
“,而后面的赋值语句写在if
的下一行,并且缩进了,在这一行结束的时候有一个表示语句结束的”;
“。这表明这条赋值语句是if
语句的一部分,if
语句拥有和控制这条赋值语句,决定它是否要被执行
if ( total > amount )
total += amount+10;
// salary.c
#include <stdio.h>
int main()
{
const double RATE = 8.25;
const int STANDARD = 40;
double pay = 0.0;
int hours;
printf("请输入工作的小时数: ");
scanf("%d", &hours);
printf("\n");
if (hours > STANDARD)
pay = STANDARD * RATE +
(hours-STANDARD) * (RATE * 1.5);
else
pay = hours * RATE;
printf("应付工资: %f\n", pay);
return 0;
}
分支
嵌套的if-else
在if
或else
后面要执行的还是if
语句,就成了嵌套
嵌套的判断
当if
的条件满足或者不满足的时候要执行的语句也可以是一条if
或if-else
语句,这就是嵌套的if
语句
找三个数中的最大
如果要求输入三个整数,输出其中最大的,应该怎么做?
else
的匹配
else
总是和最近的那个if
匹配
缩进
缩进格式不能暗示else
的匹配
嵌套的if
tips
在if
或else
后面总是用{}
,即使只有一条语句的时候
级联的if-else if
像分段函数这样的程序就可以写成级联的if
级联的if-else if
分段函数
if-else
的常见错误
没有{}
、多了;
、=
和==
这些都是常见的错误
if
语句常见的错误
- 忘了大括号
if
后面的分号- 错误使用
==
和=
- 使人困惑的
else
忘了大括号
永远在if
和else
后面加上大括号,即使当时后面只有一条语句
if
后面的分号
错误使用==
和=
if
只要求()
里的值是零或非零
代码风格
在if
和else
之后必须加上大括号形成语句块
大括号内的语句缩进一个tab的位置
多路分支:switch-case
语句
switch-case
语句
switch-case
break
边栏推荐
- 看完腾讯大佬90天整理的“Redis深度笔记”,我直接当场膜拜
- Add-apt-repository command details
- *5-1 CCF 2015-03-1 Image rotation
- Regular expression combat: the latest Douban top250 crawler super detailed tutorial
- table中 You may have an infinite update loop in a component render function问题解决
- 探索进军元宇宙的代表性企业
- JVM如何判断对象无用
- Difference between apt-get install and pip install
- *2-4 Daily temperature *2-5 Rainwater
- JS 选项卡切换tab
猜你喜欢
Simulink simulation pid control servo system
一款翻译机背后的全球经济浪潮
Use Baidu EasyDL to realize intelligent identification of health code/travel code in 30 minutes
实践数据湖iceberg 第三十九课 清理快照前后数据文件变化分析
ELK deployment
不要小看一个Redis!从头到尾全是精华,阿里Redis速成笔记太香了
结合实际聊聊电平转换电路(常用电平转换电路总结)
Shell course summary
VSTO踩坑记录(2)- 运用outlook对象模型发送邮件
*3-4 CCF 2014-09-3 String matching
随机推荐
项目小操作:form表单的校验,以及第二次显示提示校验内容等问题
不要小看一个Redis!从头到尾全是精华,阿里Redis速成笔记太香了
VMWare不使用简易安装,手动安装ISO操作手册
[Video coding learning] - SAD and SATD
基于微信云开发的幼儿园招生报名小程序
正则表达式实战:最新豆瓣top250爬虫超详细教程
Analysis of select principle in golang
太阳能小屋的设计
结合实际聊聊电平转换电路(常用电平转换电路总结)
Meta released 175 billion chatbots, and billionaire boss Xiao Zha was madly complained by "him"!
除非另外还指定了 TOP、OFFSET 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效
30分钟使用百度EasyDL实现健康码/行程码智能识别
VMWare does not use easy install, install ISO manual manually
Minesweeper game
*5-1 CCF 2015-03-1 Image rotation
Assembly language learning (2)
*3-2 CCF 2014-09-2 drawing
Assembly language learning (4)
从TRPO到PPO(理论分析与数学证明)
MySQL lock mechanism and lock algorithm