c语言switch同时比较多个变量,C语言学习if和switch分支选择结构
如何判断一个整数是否为正数
计算机同我们一样,也是可以判断大小。在此之前,我们需要先说明在计算机中用来判断两个数关系的符号,即关系运算符。
关系运算符号
c语言中的关系运算符与数学上学习的有什么不同?
image.png
关系表达式的值是真和假,在C程序用整数1和0表示。
注意:>=, <=, ==, !=这种符号之间不能存在空格。
一、分支选择结构之简单的if条件语句
if(判断条件)
{
语句1;
语句2;
语句······
}
其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。
假如你现在想让计算机判断一个整数是否为正数,如果是则显示YES,不是则显示NO,应该怎么办呢?。
//判断一个整数是否为正数
# include
# include
int main()
{
//定义一个变量a
int a;
scanf("%d",&a);
//如果a大于0,则输出YES
if(a>0)
{
printf("YES");
}
//如果a小于等于0,则输出NO
if(a<=0)
{
printf("NO");
}
return 0;
}
注意:if()后面没有分号,直接写{}
判断一个数是否为偶数
什么是偶数呢?偶数就是能够被2整除的数,也就是说一个数除以2的余数为0,那么这个数就是偶数。
那么我们现在只需要判断这个数除以2的余数是不是0,即:
如果a除以2的余数与0相等,则输出yes;
如果a除以2的余数与0 不相等,则输出no。
c语言中求余数的运算符号是“%”,所以判断一个数是否为偶数的c语言代码就是:
# include
# include
int main()
{
int a;
scanf("%d",&a);
if(a%2==0)
{
printf("yes");
}
if(a%2!=0)
{
printf("no");
}
return 0;
}
二、分支选择结构之简单的if-else结构
简单的if-else语句的基本结构:
if(判断条件)
{
语句;
语句;
······
}
else
{
语句;
语句;
······
}
语义是: 如果表达式的值为真,则执行if其后的语句,否则执行else 里的语句。
注意:
if()后面没有分号,直接写{},else后面也没有分号,直接写{}。
从键盘读入一个整数,判断它是否为偶数的另一种简便快捷的代码写法如下:
# include
# include
int main()
{
int a;
scanf("%d",&a);
if(a%2==0)
{
printf("yes");
}
else
{
printf("no");
}
return 0;
}
练习:
比较两个整数谁更大,同时打印输出较大的整数。
//比较两个整数大小,并打印输出较大的整数
# include
# include
int main()
{
int a, b, c;
scanf("%d%d",&a,&b);
//如果a大于b,将a赋值给c,并打印c
if(a>b)
{
c=a;
printf("%d",c);
}
//反之,则将b赋值给c,并打印c
else
{
c=b;
printf("%d",c);
}
return 0;
}
我们学习了如何从两个数中找出较大的一个数,那么3个数该怎么办呢?
1.首先,用3个变量a,b,c分别存放从键盘读入的3个数。
2.然后,先比较变量a和b的值,将较大的值赋给变量d。
3.再比较变量d和c的值,如果变量c的值大于变量d的值,则把变量c的值赋给变量d。
4.最后输出变量d的值。
c语言代码为:
//比较3个数的大小,并将最大值打印输出
#include
#include
int main()
{
//定义a,b,c,d 4个整型变量
int a,b,c,d;
scanf("%d %d %d",&a,&b,&c);
//如果a与b比较,将较大值赋值给d
if(a>b)
{
d=a;
}
else
{
d=b;
}
//c与d比较,如果c大于d,则将c赋值给d
if(c>d)
{
d=c;
}
printf("%d",d);
return 0;
}
当然还有另外一种写法,就是比较变量a和b,以及变量a和c的关系,思路如下:
如果 a>=b 并且 a>=c,则输出a;
如果 b>a 并且 b>=c,则输出b;
如果 c>a 并且 c>b,则输出c。
其中“并且”在c语言中用“&&”来表示,这时我们需要来了解一下c语言中的逻辑运算符。
c语言中逻辑运算符:
image.png
逻辑运算的值也是有两种分别为真和假,C语言中用整型的1和0来表示。其求值规则如下:
与运算&&
参与运算的两个变量都为真时,结果才为真,否则为假。例如:5>=5 && 7>5 ,运算结果为真;
或运算||
参与运算的两个变量只要有一个为真,结果就为真。 两个量都为假时,结果为假。例如:5>=5||5>8,运算结果为真;
非运算!
参与运算的变量为真时,结果为假;参与运算量为假时,结果为真。例如:!(5>8),运算结果为真。
另一种写法的c语言代码:
//判断3个数的大小
#include
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
//如果 a>=b 并且 a>=c,则输出a;
if(a>=b && a>=c)
{
printf("%d",a);
}
//如果 b>a 并且 b>=c,则输出b;
if(b>a && b>=c)
{
printf("%d",b);
}
//如果 c>a 并且 c>b,则输出c。
if(c>a && c>b)
{
printf("%d",c);
}
return 0;
}
挑战练习
比较3个数的大小,并从大到小排序输出。
第一种方法:
如果a>=b 并且 b>=c,打印a b c;
如果a>=c 并且 c>b,打印a c b;
如果b>a 并且 a>=c,打印b a c;
如果b>=c 并且 c>a,打印b c a;
如果c>a 并且 a>=b,打印c a b;
如果c>b 并且 b>a,打印c b a;
代码如下:
//比较排序3个数字大小,从大到小输出
#include
int main()
{
int a,b,c,t;
scanf("%d %d %d",&a,&b,&c);
//如果a>=b 并且 b>=c,打印a b c;
if(a>=b && b>=c)
{
printf("%d %d %d",a,b,c);
}
//如果a>=c 并且 c>b,打印a c b;
if(a>=c && c>b)
{
printf("%d %d %d",a,c,b);
}
//如果b>a 并且 a>=c,打印b a c;
if(b>a && a>=c)
{
printf("%d %d %d",b,a,c);
}
//如果b>=c 并且 c>a,打印b c a;
if(b>=c && c>a)
{
printf("%d %d %d",b,c,a);
}
//如果c>a 并且 a>=b,打印c a b;
if(c>a && a>=b)
{
printf("%d %d %d",c,a,b);
}
//如果c>b 并且 b>a,打印c b a;
if(c>b && b>a)
{
printf("%d %d %d",c,b,a);
}
return 0;
}
第二种方法(称之为“换位法”):
1.先将a与b比较,如果a
2.将a与c比较,如果a
3.将b与c比较,如果b
c语言代码为:
//“换位法”从大到小,排序三个数大小
#include
int main()
{
int a,b,c,t;
scanf("%d %d %d",&a,&b,&c);
//1.先将a与b比较,如果a
if(a
{
t=a;
a=b;
b=t;
}
//2.将a与c比较,如果a
if(a
{
t=a;
a=c;
c=t;
}
//3.将b与c比较,如果b
if(b
{
t=b;
b=c;
c=t;
}
printf("%d %d %d",a,b,c);
return 0;
}
分支选择结构之嵌套if-else语句
C语言中嵌套if-else语句。嵌套if-else语句的意思,就是在if-else语句中,再写if-else语句。其一般形式为:
if(判断条件)
{
if(判断条件)
{
执行代码块;
}
else
{
执行代码块;
}
else
{
执行代码块;
}
}
先回顾一下之前写的比较3个数大小的代码,然后思考如何用“嵌套”的方式来解决这个问题。
在之前我们使用“&&”这个逻辑关系运算符号来解决两个条件同时“满足”的需求
if(a>=b && a>=c)
print("%d",a);
上述代码,可以用“嵌套”的方式写成:
//如果a大于等于b,再进一步讨论a与c的关系
if(a>=b)
{
//如果a大于等于c成立,则输出a,不成立则输出c
if(a>=c)
{
printf("%d",a);
}
else
{
printf("%d",c);
}
}
那如果a大于等于b不成立呢,我们的完整代码该如何编写呢?
//if-else嵌套,判断三个数大小
#include
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
if(a>=b)
{
if(a>=c)
{
printf("%d",a);
}
else
{
printf("%d",c);
}
}
else
{
if(b>=c)
{
printf("%d",b);
}
else
{
printf("%d",c);
}
}
return 0;
}
如何把代码修改的更简洁呢?
当if或else语句后只需执行一条代码时,可省略{ }。
if-else if 结构
95 “A”;86~100 “A”;70~85 “B”;60~69“C”;小于60“D”
要求输入A B C D ,输出成绩范围。
定义char grade 用if else实现
# include
int main()
{
char grade;
printf("请输入等级:");
scanf("%c",&grade);
if(grade=='A')
{
printf("分数在86~100分");
}
else if(grade=='B')
{
printf("分数在70~85分");
}
else if (grade=='C')
{
printf("分数在60~69分");
}
else if(grade=='D')
{
printf("分数在60分以下");
}
else if(grade != 'A' ||grade != 'B' || grade !='C' ||grade !='D')
{
printf("输入错误!");
}
return 0;
}
switch 分支选择
#include
int main()
{
char grade;
scanf("%c",&grade);
switch(grade)
{
case 'A':printf("分数在86~100分"); break;
case 'B':printf("分数在70~85分"); break;
case 'C':printf("分数在60~69分"); break;
case 'D':printf("分数在60以下"); break;
default:printf("输入错误!");
}
}
从键盘输入一个月份,输出对应季节
12~2 冬季
3~5 春季
6~8 夏季
9~11 秋季
//从键盘输入一个月份,输出对应季节
/*
12~2 冬季
3~5 春季
6~8 夏季
9~11 秋季
*/
#include
int main()
{
int number ;
printf("请输入一个1~12的月份,以回车结束\n");
scanf("%d",&number);
switch (number) {
case 12:
case 1:
case 2:
printf("冬季");
break;
case 3:
case 4:
case 5:
printf("春季");
break;
case 6:
case 7:
case 8:
printf("夏季");
break;
case 9:
case 10:
case 11:
printf("秋季");
break;
default:
printf("输入错误!\n");
break;
}
return 0;
}
输入一个不多于5位的正整数
1)输出位数
2)分别输出每位数字,中间为“,”分隔开
3)反向输出5位数
#include
int main()
{
int num, ten_th,thous,hund,ten,indiv;
printf("请输入一个不多于5位的正整数:");
scanf("%d",&num);
if(num>9999 && num <=99999)
{
printf("这个数是一个五位数:");
ten_th=num/10000;
thous=(num-ten_th*10000)/1000;
hund=(num-ten_th*10000-thous*1000)/100;
ten=(num-ten_th*10000-thous*1000-hund*100)/10;
indiv=num%10;
printf("%d,%d,%d,%d,%d\n",ten_th,thous,hund,ten,indiv) ;
printf("反向输出:%d%d%d%d%d",indiv,ten,hund,thous,ten_th) ;
}
else if(num<=9999&&num>999)
{
printf("这个数是一个四位数:");
thous=num/1000;
hund=(num-thous*1000)/100;
ten=(num-thous*1000-hund*100)/10;
indiv=num%10;
printf("%d,%d,%d,%d\n",thous,hund,ten,indiv) ;
printf("反向输出:%d%d%d%d",indiv,ten,hund,thous) ;
}
else if(num<=999&&num>99)
{
printf("这个数是一个三位数:");
hund=num/100;
ten=(num-hund*100)/10;
indiv=num%10;
printf("%d,%d,%d\n",hund,ten,indiv) ;
printf("反向输出:%d%d%d",indiv,ten,hund) ;
}
else if(num<=99&&num>9)
{
printf("这个数是一个两位数:");
ten=num/10;
indiv=num%10;
printf("%d,%d\n",ten,indiv) ;
printf("反向输出:%d%d",indiv,ten) ;
}
else if(num>=0 && num<=9)
{
printf("这个数是一个一位数:");
printf("%d",num);
printf("反向输出:%d",num);
}
else if (num>99999 || num < 0)
{
printf("输入错误!");
}
return 0;
}
c语言switch同时比较多个变量,C语言学习if和switch分支选择结构相关推荐
- C语言分支结构的作用,C语言丨用switch语句实现多分支选择结构
C语言永远不会过时 其实学编程关键是学习其思想,如果你精通了一门,再去学其他的时候也很容易上手.C不会过时的,尤其是在unix.linux操作平台上,学好C是必须的. C跟C++在很多方面也是兼容的, ...
- c语言中存贮班级学生的变量,C语言----变量教案.docx
C语言----变量教案 课 题 2.2 常量和变量----变量 课型 理实一体化 授课班级 高二计算机(升学班) 课时 2 教学目标 复习巩固C语言中常量的应用: 掌握C语言中变量的命名规则及应用. ...
- C语言 用switch语句实现多分支选择结构
switch语句 1.switch语句是多分支选择语句,switch语句的作用是根据表达式的值跳转到不同的语句 2.switch语句的一般形式: switch(表达式) { case 常量1: 语句1 ...
- 怎样在c语言中声明list这一变量,C语言变量赋值语句的语法解析算法实现
本篇文章是java开发编译器系列课程的文档,有兴趣的朋友可关注网易云课堂的视频内容: 自己动手用java开发编译器 经过一系列的算法摸索后,我们终于要进入 C 语言编译器开发的进程,这一节,我们的目的 ...
- c语言怎么获取系统时间到变量,C语言怎样获取系统当前的时间并把它保存到定义的变量中...
#include #include void showLocalTime(); void main() { showLocalTime(); } void showLocalTime()//显示时间 ...
- c语言16进制数给变量,C语言中怎样定义能够保存16进制整数的变量
Objective-C中NSInvocation的使用 OC中调用方法某个对象的消息呦两种方式: #1. performanceSelector: withObject: #2. NSInvocati ...
- c语言getchar的不赋任何变量,c语言getchar的用法
1.从缓冲区读走一个字符,相当于清除缓冲区 2.前面的scanf()在读取输入时会在缓冲区中留下一个字符'\n'(输入完s[i]的值后按回车键所致), 所以如果不在此加一个getchar()把这个回车 ...
- 计算机二级考试c语言公共基础知识,全国计算机二级c语言公共基础知识考试内容.doc...
全国计算机二级c语言公共基础知识考试内容 全国计算机二级等级考试的笔试包括基础知识和程序设计两部分,其中基础知识占30分.以下是由关于全国计算机二级c语言公共基础知识考试内容的内容,希望大家喜欢! 全 ...
- c语言实验题水仙花数5359,《C语言程序设计》实验报告(实验1-12).doc
<C语言程序设计>实验报告(实验1-12).doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会 ...
最新文章
- Java项目:宠物医院预约挂号系统(java+JSP+Spring+SpringBoot+MyBatis+html+layui+maven+Mysql)
- 模型越大,真的越香吗?千亿参数之后是万亿,万亿之后呢?
- golang逃逸分析
- 2013年中国数据库大会PPT
- 15 FFT及其框图实现
- 图像分类——EfficientNet的学习笔记
- Digikitz Linked Vibes for Mac(嘻哈风格乐器音源插件)
- Kotlin从入门到放弃(三)——协程
- 【SpringBoot_ANNOTATIONS】 生命周期 02 实现InitializingBean, DisposableBean接口
- 什么是计算机病毒?是怎么产生的?
- android 视频录制花屏,拍大师录制视频花屏怎么办 拍大师录像花屏解决方法
- 《医院信息系统(HIS)软件基本功能规范》98版 [赏析]
- 跨境支付与业务流程介绍
- Rxjava--背压(Backpressure)
- NGFW module恢复密码操作方法
- Qt使用qwtplot3d绘制3D曲面
- Web前端开发中最基本的找错误的方法, 你得了解一下
- 第二周 预习:Java基本语法2、面向对象入门
- How to evaluate and motivate a speech
- 性能测试培训总结-强大的nmon监控
热门文章
- 共筑计算新生态 共赢数字新时代
- 《2021中国数据资产化工具市场研究报告》隆重发布
- 跟面试官侃了半小时 MySQL 事务,把原子性、一致性、持久性的实现都讲完了
- NVIDIA发布全新推理软件,开创交互式会话AI新时代!
- c语言fun函数yx,C语言解24点游戏程序
- 商用服务器系统比较好,商用服务器操作系统都用哪种
- pytorch 图像分割的交并比_「通知」《深度学习之图像识别》再版工作启动,欢迎指导和提建议...
- upgrade yum 指定版本_CentOS 6.9/7通过yum安装指定版本的MySQL
- node+express项目链接MySQL数据库(最简单版)
- JavaScript 常用工具函数