C语言基础第六课——第二节if语句(if-else格式、不带else的if结构)、借例题简述写代码流程、从键盘上输入三个整数,求出其中的最大数(打擂法、三目运算符、排序)、if语句的嵌套计算个人所得税

一、if语句概述

if语句是专门用来实现选择结构的语句,能够根据条件的真假,选择执行两种操作中的一种。if语句有两种形式
在这里插入图片描述

二、标准if-else格式

  1. 在这里插入图片描述2. if(表达式)
    表达式一般就是判断条件,一般是条件或者逻辑表达式。

在这里插入图片描述

三、借例题简述写代码流程

先普及一下常见的闰年那一道题目的背景
地球绕太阳公转一周叫做一回归年,约为365.2422天。 如果一年按365天计算,那么经过400年就会多出来96.88天。因此格里历的置闰法则为400年97闰,格里历也就是沿用至今的公历,这样经过3333年才会有一天的误差。
格里历的闰年条件:
四年一闰,百年不闰,四百年再闰。
例如,1896年是闰年,1900年则是平年。
下面是做题流程
在这里插入图片描述在这里插入图片描述在这里插入图片描述

#include <stdio.h>
int main()
{
int year;
printf("请输入一个年份: ");
scanf("%d",&year);
if( (year%4==0)&&(year%100!=0) || (year%400==0))
printf("%d是闰年\n",year);
else
printf("%d不是闰年\n",year);
return 0;
}
  1. 第一步就是分析,可以跟上面一样画图表示,也可以用别的办法,能让自己知道这道题考的是什么或者说答案范围就行。
  2. 第二步就是想办法把这个答案范围或者说题目考察的目的表示出来,就像个表达式啥的筛选一下,比如上面就是根据闰年的判断条件写了个表达式来将闰年筛选出来
  3. 第三步就是画流程图啊或者啥的,目的就是为了让自己理清楚做这道题的顺序,包括前面的定义变量,以及中间的算法应该怎么采用,判断或者循环结构应该在什么地方使用,还有最后的输出格式应该调整为什么格式或者要求。
  4. 第四步就是写代码实现流程图的内容了
  5. 第五步可能就是最无语的改改改了。。。。。

四、不带else的if结构

if(表达式)
语句

在这里插入图片描述

五、例题:从键盘上输入三个整数,求出其中的最大数。(打擂法、三目运算符、排序)

思路:要求得三个数的最大值,首先求出前两个数的最大值,存入变量max中,然后将第三个变量和max相比较,就可以求出三个数中的最大值了。

在这里插入图片描述答案:

#include <stdio.h>
int main()
{
int a,b,c,max;
printf("请输入三个整数: ");
scanf( "%d%d%d",&a,&b,&c);
if(a>b)
max=a;
else
max=b;
if(c>max)
max=c;
printf("最大数=%d\n",max);
return 0;
}


其实这里有一个三目运算符挺有意思的
能够省不少力气
三目运算符:(表达式1)?(表达式2):(表达式3)
可以自己想一下
max=a>b?a:b; 
max=((a>b)?a:b)>c?((a>b)?a:b):c;
就类似这种,蛮有意思的 
可能函数那一章节
还会写这个吧                           
          


还有就是这边也涉及一个打擂法考察的可能
max=a;
if(max<b)
max=b;
if(max<c)
max=c;
还有蛮多可能的,溜了溜了

六、if语句的嵌套

通常用于处理多分支选择程序(潜逃简单点就是在if语句里面还有if语句)
看看图理解一下
在这里插入图片描述在这里插入图片描述没啥难度,看看图就全懂了
在这里插入图片描述

写出来的嵌套if语句就是
if(x>0)
y=sqrt(x);
else 
if(x==0)
y=0;
else
y=fabs(x); 

唯一要注意的可能就是IF-ELSE组合了
因为else跟前面离他最近的未配对的if配对,所以设计的时候注意不要搞错了顺序,不要搞出二义性啥的问题。
在这里插入图片描述尤其是这种不带else的if语句,挺容易出错的,解决办法就是大括号
在这里插入图片描述

七、看个例题(计算个人所得税)

在这里插入图片描述

  1. 分析题意,找范围
    一个多分支问题,可以使用嵌套的if语句来编写程序。要特别注意,对于各个收入区间要分段计算税额。例如,某人月收入为1万元,那么5000元以内不交税,5000元以上到8000元区间按3%税率计税,8000元以上到10000元区间按10%税率计税。
  2. 找判断条件,画流程图
    在这里插入图片描述
  3. 写程序.
#include <stdio.h>
int main()
{
double x,tax;
printf("请输入您的月收入(元) : ");
scanf("%lf",&x); //lf
if(x<=5000)
	tax=0;
else
	if(x<=8000)
		tax=(x-5000)*0.03;
	else
		if(x<=17000)
			tax=(8000-5000)*0.03+(x-8000)*0.1;
		else
			tax=(8000-5000)*0.03+(17000-8000)*0.1+ (x-17000)*0.2;
printf("您的个人所得税=%.2lf元\n",tax);
return 0;
}
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值