• C语言程序设计笔记(浙大翁恺版) 第三周:判断


    按照中国大学MOOC上浙江大学翁恺老师主讲的版本所作,B站上也有资源。原课程链接如下:

    https://www.icourse163.org/course/ZJU-9001

    由于是大三抽空回头整理的,所以可能前五章会记的内容比较简略。此外,作为选学内容的A0:ACLLib的基本图形函数和链表两章也没有做。西电的考试是机试,理论上学到结构体就能够应付考试了,但为了以后的学习考虑建议全学。

     

    其他各章节的链接如下:

    C语言程序设计笔记(浙大翁恺版) 第一周:程序设计与C语言

    C语言程序设计笔记(浙大翁恺版) 第二周:计算

    C语言程序设计笔记(浙大翁恺版) 第三周:判断

    C语言程序设计笔记(浙大翁恺版) 第四周:循环

    C语言程序设计笔记(浙大翁恺版) 第五周:循环控制

    C语言程序设计笔记(浙大翁恺版) 第六周:数据类型

    C语言程序设计笔记(浙大翁恺版) 第七章:函数

    C语言程序设计笔记(浙大翁恺版) 第八周:数组

    C语言程序设计笔记(浙大翁恺版) 第九周:指针

    C语言程序设计笔记(浙大翁恺版) 第十周:字符串

    C语言程序设计笔记(浙大翁恺版) 第十一周:结构类型

    C语言程序设计笔记(浙大翁恺版) 第十二周:程序结构

    C语言程序设计笔记(浙大翁恺版) 第十三周:文件

     

    判断

    编程练习解析部分的几个细节:

    如何输入ab

    • 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 
    
    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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

     

    判断的条件

    关系运算,做比较的运算符

     

     

    条件

    计算两个值之间的关系,所以叫做关系运算

    在这里插入图片描述
     

     

    关系运算的结果

    当两个值的关系符合关系运算符的预期时,关系运算的结果为整数1,否则为整数0

    printf("%d\n", 5==3);
    printf("%d\n", 5>3);
    printf("%d\n", 5<=3);
    
    • 1
    • 2
    • 3

     

     

    优先级

    所有的关系运算符的优先级比算术运算的低,但是比赋值运算的高

    7 >= 3 + 4
    int r = a>0;
    
    • 1
    • 2

     

    判断是否相等的==!=的优先级比其他的低,而连续的关系运算是从左到右进行的

    5 > 3 == 6 > 4
    6 > 5 > 4
    a == b == 6
    a == b > 0
    
    • 1
    • 2
    • 3
    • 4

     

    找零计算器

    判断,注释,流程图

     

     

    找零计算器

    找零计算器需要用户做两个操作:输入购买的金额,输入支付的票面,而找零计算器则根据用户的输入做出相应的动作:计算并打印找零,或告知用户余额不足以购买

    从计算机程序的角度看,这就是意味着程序需要读用户的两个输入,然后进行一些计算和判断,最后输出结果

    在这里插入图片描述

     

     

    注释

    注释(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;
    
    • 1
    • 2

     

    // salary.c
    
    #include 
    
    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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

     

    分支

    嵌套的if-else

    ifelse后面要执行的还是if语句,就成了嵌套

     

     

    嵌套的判断

    if的条件满足或者不满足的时候要执行的语句也可以是一条ifif-else语句,这就是嵌套的if语句

    在这里插入图片描述
     

     

    找三个数中的最大

    如果要求输入三个整数,输出其中最大的,应该怎么做?

    在这里插入图片描述
    在这里插入图片描述
     

     

    else的匹配

    else总是和最近的那个if匹配

    在这里插入图片描述
     

     

    缩进

    缩进格式不能暗示else的匹配

    在这里插入图片描述

     

     

    嵌套的if

    在这里插入图片描述
     
    在这里插入图片描述
     

    在这里插入图片描述
     

    在这里插入图片描述
     

    在这里插入图片描述

     

    tips

    ifelse后面总是用{},即使只有一条语句的时候

     

    级联的if-else if

    像分段函数这样的程序就可以写成级联的if

     

     

    级联的if-else if

    在这里插入图片描述

     

     

    分段函数

    在这里插入图片描述
    在这里插入图片描述
     

     

    if-else的常见错误

    没有{}、多了;===这些都是常见的错误

     

     

    if语句常见的错误

    • 忘了大括号
    • if后面的分号
    • 错误使用===
    • 使人困惑的else

     

     

    忘了大括号

    永远在ifelse后面加上大括号,即使当时后面只有一条语句

    在这里插入图片描述

     

     

    if后面的分号

    在这里插入图片描述

     

     

    错误使用===

    if只要求()里的值是零或非零

    在这里插入图片描述

     

     

    代码风格

    ifelse之后必须加上大括号形成语句块

    大括号内的语句缩进一个tab的位置

    在这里插入图片描述

     

    多路分支:switch-case语句

    switch-case语句

     

     

    switch-case

    在这里插入图片描述
    在这里插入图片描述

     

     

    break

    在这里插入图片描述

  • 相关阅读:
    kafka笔记要点和集群安装、消息分组、消费者分组以及与storm的整合机制
    Sa-Token 整合Java17和SpringBoot
    687. 最长同值路径 ●●
    Java中的线程安全问题
    Mysql 通过binlog伪装master恢复数据库
    HTTP复习(二)
    黑*头条_第1章_项目介绍和工程搭建
    网络协议:HTTPS
    SpringBoot3框架,Web开发(上)
    usermod
  • 原文地址:https://blog.csdn.net/zimuzi2019/article/details/126215624