首页 > 其他分享 >第三章 判断

第三章 判断

时间:2024-02-16 11:12:43浏览次数:20  
标签:语句 判断 第三章 int scanf else im printf

判断

计算时间差(if语句实现)

#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;
}

运行结果code1

    if(im < 0){
        im = 60 + im;
        ih--;
    }

如果if(condition){}condition不满足,则{}里面的内容不用执行,直接跳过这个if语句。

if语句

if(条件成立){
    ...
}

做比较

计算机的智能是建筑在规则的基础上的,在遇到情况的时候,根据事先制定的规则做出判断,是计算机最基本的能力。
能做判断的基础,是能对数据做比较,比较就是关于两个数据是否相等、谁大谁小的结论,这需要用到关系运算:对两个数据之间的关系的计算。
计算两个值之间的关系叫做关系运算
C语言提供了六个关系运算符:
● == 相等
● != 不相等
● > 大于
● >= 大于或等于
● < 小于
● <= 小于或等于

注意其中有两个字符的运算符:==、>=和<=的两个字符必须紧紧连在一起,中间不能插入空格。

关系运算的结果是一个逻辑值,逻辑值只有两种可能的值:true(真,表示成立)或false(假,表示不成立)。当两个值的关系符合关系运算符的预期时,关系运算的结果为true,否则为false。
来自: 程序设计入门——C语言_中国大学MOOC(慕课)
printf("%d\n", 5==3);
printf("%d\n", 5>3);
printf("%d\n", 5<=3);
这三个式子中,5==3是一个关系运算,它的结果是一个逻辑值。

优先级

  • 所有的关系运算符的优先级比算术运算的低,但是比赋值运算的高
  • 7 >= 3 + 4
  • int r = a>0;
  • 而在所有的关系运算符中它们的优先级也是不一样的
  • 判断是否相等的==和!=的优先级比其他的低,而连续的关系运算是从左到右进行的
  • 5 > 3 == 6 > 4
  • 6 > 5 > 4
  • a == b == 6
  • a == b > 0
    不论程序多么复杂,它们执行的流程都是一样的
  • 输入->计算->返回输出结果

注释(comment)方式

  • 以//开始、以换行符结束的单行注释(line comment)
  • 以/*开始、以*/结束的块注释(block comment)
  • 预处理器会把每个注释都替换成一个空格

判断年龄

age

#include <stdio.h>

int main()
{
    const int MINOR = 35;
    int age = 0;

    printf("请输入你的年龄:");
    scanf("%d", &age);

    printf("你的年龄是%d岁.\n", age);

    if(age < MINOR){
        printf("年龄是美好的.");
    }

    printf("年龄决定了你的精神世界, 好好珍惜吧.\n");

    return 0;
}

运行结果,ageJudge

否则的话

else = 否则的话

找零

// 初始化
int price = 0;
int bill = 0;
// 读入金额和票面
printf("请输入金额:");
scanf("%d", &price);
printf("请输入票面:");
scanf("%d", &bill);
// 计算找零
if(bill >= price){
    printf("应该找您:%d\n", bill - price);
}else{
    printf("你的钱不够\n");
}

运行结果changeElse

if语句再探

  • if语句可以没有大括号
    说明1
    说明2
#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和else语句只能控制其后的单个语句。 如果在单个语句后紧接着编写另一条语句,那么这条语句将始终会被执行,而不管if或else语句的条件是否为真或假。 因此,强调在 if 和 else 语句后使用花括号是为了确保代码的正确性和可读性
/* */会被替换为什么?
会变成空格进行替换

小测验

题目1

  • 1<=n<=10这个表达式的值为1,就变成了if(1);
  • if(1);这个if括号后面有分号,表示的是如果1成立,则不执行任何语句,而是空语句,分号前面没有任何语句

标签:语句,判断,第三章,int,scanf,else,im,printf
From: https://www.cnblogs.com/ChangJianhui-080910T/p/18016979

相关文章

  • 第三章 循环
    目录目录前言人VS计算机判断几位数数数讨论while循环验证调试do-whilewhile与do-while的流程图for循环阶乘例子for循环的计数三种循环的选择与比较前言if语句可以判断条件是否满足,满足时才做相应的动作,而循环语句可以在满足条件时,不断地重复执行一些动作......
  • 《程序时怎样跑起来的》第三章观后感
    计算机作为现代科技的重要组成部分,广泛应用于各个领域。在计算机中进行小数运算是其常见的任务之一,但在实际应用中,我们常常会遇到小数运算出错的情况。这是由于多种原因导致的,本文将在第三章中探讨这些问题以及其原因。计算机进行小数运算时出错的原因之一是浮点数精度问题。计算......
  • 《系统是怎样跑起来的》第三章读后感
    本章主要讲述了计算机系统的基本架构,包括硬件、操作系统和应用软件三个层次。通过这一章,我明白了计算机系统是如何协同工作的,以及如何有效地利用这些组件来满足我们日常的需求。首先,作者介绍了计算机硬件的基本组成,包括CPU、内存、硬盘、显卡等。这些硬件部件为整个系统......
  • C# WINFORM判断程序已经运行,切只能运行一个实例
    判断程序是否已经运行,使程序只能运行一个实例:方法1://这种检测进程的名的方法,并不绝对有效。因为打开第一个实例后,将运行文件改名后,还是可以运行第二个实例.privatestaticboolisAlreadyRunning(){boolb=false;Process[]mProcs=Process......
  • 《程序是怎样跑起来的》第三章读后感
    第三章主要讲解了计算机在处理二进制、十进制以及小数运算时的原理和可能遇到的问题。在这之前,我们了解到计算机内部是以二进制形式存储数据,但读完第三章后,我对二进制有了更深入的理解,例如二进制与十进制、十六进制之间的转换方式:将二进制数转换为十进制,就是按照位权展开相加;而从......
  • 手势滑动判断上下左右
       moveDirectiondirection;//这个是个枚举 -(void)touchesBegan:(NSSet<UITouch*>*)toucheswithEvent:(UIEvent*)event{     //方向  UITouch*touch=[touchesanyObject];  CGPointtranslation=[touchlocationInView:self.view];  ......
  • 第三章:计算机进行小数运算时出错的原因
    在阅读《程序是怎样跑起来的》第3章“计算机进行小数运算时出错的原因”后,我深刻地认识到了计算机在进行浮点数运算时的局限性和潜在风险。这一章内容让我明白了,为什么在实际编程过程中,我们经常会遇到浮点数运算的误差问题。首先,我了解到计算机使用二进制来表示所有的数据,包括浮......
  • LocalDateTime判断时间段归属
    //v2024-02-0207:52:572024-02-0214:39:14//DateinTime=Date.from(Instant.ofEpochMilli(1707150614000L));//LocalDateTimeinTimeLocalDateTime=DateUtil.dateToLocalDateTime(inTime);LocalDateTimeinTime=LocalDateTime.parse("2024-02-01......
  • 通达信短中趋势判断主图指标公式见红就买吧源码
    {股票指标}短中趋势判断通达信主图指标源码A1:=C*2-REF(C,8.5/2);A2:=REF(C,19/3)*2-C;短期对称:=(A1+A2)/2;关键点:=HHV(短期对称,27/2);M1:=L*2-REF(H,27/2);M2:=REF(H,27/2)*2-L;M3:=(M1+M2)/2;中期对称:=FORCAST(M3,21);趋势判断:MA(M3,27*2),COLOR0000FF,N......
  • react使用判断,显示相关组件----会出现代码,正确的写法是怎样的
    如题,下面的写法,在实际显示的时候,会出现代码constSpeakLoading=(props)=>{return(<RecordLoadingWrapper>props.iatStatus=='ing'&&(<div>正在倾听,请说话</div><imgclassName="recording-img"src={audioImg}alt=&......