c语言switch同时比较多个变量,C语言学习if和switch分支选择结构

如何判断一个整数是否为正数

计算机同我们一样,也是可以判断大小。在此之前,我们需要先说明在计算机中用来判断两个数关系的符号,即关系运算符。

关系运算符号

c语言中的关系运算符与数学上学习的有什么不同?

03f80f229cf4

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语言中逻辑运算符:

03f80f229cf4

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;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528343.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言字符串升序输出,编写程序将已按升序排好的两个字符串a和b中的字符按升序归并到字符串c中,最后输出”abcdefghijklmnpq”。...

满意答案sjoest2014.08.18采纳率&#xff1a;59% 等级&#xff1a;8已帮助&#xff1a;663人(1)char a[]"acegikm"; a数组没有赋予数组大小&#xff0c;所以它的大小&#xff0c;默认等于赋予的字符串长度等于7&#xff0c;所以当strcat(a,b)时&#xff0c;…

c语言指针化简带分数,c语言带分数四则运算问题!!!要求被调函数,化简.

满意答案Lie囡2013.02.03采纳率&#xff1a;58% 等级&#xff1a;12已帮助&#xff1a;8948人#include long int a,b,c,d,x,y,z;char op;int f1();int f2();main(){printf("shu ru di yi ge shu de fen zi:");scanf("%ld",&a);printf("shu ru …

c语言smile定义函数,【C初始之习题五】

1.实现一个函数&#xff0c;打印乘法口诀表&#xff0c;口诀表的行数和列数自己指定&#xff0c;输入9&#xff0c;输出99口诀表&#xff0c;输入12&#xff0c;输出1212的乘法口诀表。#define _CRT_SECURE_NO_WARNINGS#include#includevoid Sum(int x){int num 0;for (int i …

2017年9月计算机二级c语言,2017年9月计算机二级C语言程序设计练习题

2017年9月计算机二级C语言程序设计练习题2017年计算机二级考试即将在九月份进行&#xff0c;你准备好了吗?下面是小编为大家带来的计算机二级C语言程序设计练习题&#xff0c;欢迎阅读。练习题一&#xff1a;阅读程序题1、int x6, y7;printf(“%d,”,x); printf(“%d”,y);程序…

android getter不起作用,java - 如何在Android Studio中自动生成getter和setter

java - 如何在Android Studio中自动生成getter和setterAndroid Studio中是否有一个快捷方式可以自动生成给定类中的getter和setter&#xff1f;14个解决方案454 votes在编辑器中使用Alt Insert for Windows或Command N for Mac&#xff0c;您可以轻松地为类的任何字段生成get…

离散中多重组合是指_PLC编程中如何使用开关、模拟、脉冲量

在工业自动化控制中&#xff0c;经常会遇到开关量&#xff0c;数字量&#xff0c;模拟量&#xff0c;离散量&#xff0c;脉冲量等各种概念&#xff0c;而人们在实际应用中&#xff0c;对于这些概念又很容易混淆。作为电气工程及其自动化设计人员来说&#xff0c;弄清楚这些变量…

Android连接相机WiFi,安卓手机使用佳能相机机身wifi传输拍摄的操作

第一步 相机基础设置首先请确保相机具有WIFI功能&#xff1b;设置相机图像包含JPG格式&#xff1b;3. 相机电源设置&#xff0c;请关闭相机的自动关闭电源功能以保证传输&#xff1a;MENU→“自动关闭电源”→选择“关闭”或“最长时间”&#xff1b;4. ftp设置&#xff0c;…

word论文排版插件_教你如何用word快速搞定论文排版

在疫情影响下&#xff0c;各大高校纷纷开启了远程指导论文/答辩&#xff0c;尽量不影响毕业时间。这不&#xff0c;前段时间湖北武汉科技大学的同学&#xff0c;利用视频在家顺利通过博士学位论文答辩。emmm&#xff0c;人家都答辩完半个月了&#xff0c;回头瞧瞧我们&#xff…

kodi android 键盘,KODI按键映射,看IPTV按键设置

KODI按键映射&#xff0c;看IPTV按键设置2020-04-09 18:10:1016点赞76收藏7评论KODI播放器功能丰富&#xff0c;其中自定义按键功能也是强大&#xff0c;可以让用户修改各个场景下各个按键的功能&#xff0c;网上好多文章没把事情说明白或太复杂&#xff0c;本教程教大家以简单…

不采取任何措施 盒盖_得了癌症如果不化疗能活多久?医生的答案很实在

癌症有不同的治疗手段&#xff0c;有手术&#xff0c;有放疗&#xff0c;有化疗……说到化疗&#xff0c;有人就说千万不要化疗&#xff0c;千万不要化疗&#xff0c;于是很多人拒绝化疗。有人就问&#xff1a;癌症如果不化疗能活多久&#xff1f;癌症如果不化疗能活多久&#…

html 最小边框宽度,css如何让div边框不占宽度?

HTML中&#xff0c;给一个DIV添加一个边框&#xff0c;那么这个DIV的宽度和高度就增加成为这个DIV的宽度加上这个边框的宽度&#xff0c;那么我们如何让边框不占宽度呢&#xff1f;我们做网站时可以添加边框box-sizing属性&#xff1a;让边框不占宽度&#xff0c;在DIV宽度内画…

深圳市收运体系运营管理_华为公司质量管理体系构建和运营实践

导语&#xff1a;质量是一个产品乃至一个企业存在的基石&#xff0c;华为公司的质量管理理念和体系是什么&#xff0c;华为的质量管理如何运营的呢&#xff1f;华为公司如何发挥质量与运营部的作用确保产品和流程高效运作&#xff0c;满足客户需求呢&#xff1f;快来看看吧&…

语言列表导出xlxs_学习五分钟,掌握一种新语言。

有没有一种语言&#xff0c;既实用还能够短时间内学会并应用起来&#xff1f;当然有。小阳今天要教给大家的是一种标记语言——Markdown。经常上网的你&#xff0c;一定有注意到很多网页排版整齐、简洁优美&#xff0c;各级标题区分明显&#xff0c;文章逻辑清晰。难道他们是使…

登录页面html5 css3 js代码,H5+css3+js搭建带验证码的登录页面

本文实例为大家分享了H5css3js搭建带验证码的登录页面&#xff0c;供大家参考&#xff0c;具体内容如下login.htmlEasyBuy后台管理系统.main_bar{width:1350px;height:350px;background-color:#6495ED;margin-top:10%;}#login_form{width:40%;height:100%;background-color:#11…

公需科目必须学吗_要考电工证吗?电工技术必须学的33招,电工技术知识

理了一下电工常用的技术口决&#xff0c;希望能给大家带来帮助&#xff01;1&#xff0c;直接起动三相异步电动机的开关、熔断器的电流规格及电源容量最小值。电机满压直接起&#xff0c;铭牌电流五至七。容量不超十千瓦&#xff0c;否则设备撑不起。直接起动配开关&#xff0c…

html多级折叠菜单表单,JS实战篇之收缩菜单表单布局

获取节点的两种方式&#xff1a;1、通过event对象的srcElement属性&#xff1b;2、通过事件源对象用this传入。代码如下&#xff1a;收缩菜单 表单布局function list(dtNode){// var dtNode event.srcElement;var dlNode dtNode.parentNode;// alert(dtNode.nodeName"-…

html5 输入框有值无效,HTML5基础 input required 输入框内必须有内容

OS : Windows 10browser : Chrome 83.0.4103.116editor : Visual Studio Code 1.46.1typesetting : Markdown?htmlDocument?result?resource[ 教程 ] www.w3school.com.cn/html/index.asp[ 手册 ] www.w3cschool.cn/html5_reference.html[ 规范 ] www.runoob.com/html/html5…

网页设计 html鼠标悬停,利用css3实现的简单的鼠标悬停按钮

今天给大家分享一款基于css3的简单的鼠标悬停按钮。这款悬停按钮鼠标经过前边框是间断的。当鼠标经过的时候边框间隔消失。效果图如下&#xff1a;实现的代码。html代码&#xff1a;复制代码代码如下:Single gradient borderClick Me! Very long link text herePseudo elements…

工期计算机在线,工期日历计算器

工期日历计算器官方版工期日历计算器官方版是款适合很多行业中使用的做工工期计算工具。工期日历计算器中用户们可以设置开竣工日期后&#xff0c;自动计算工期&#xff0c;正好适合记录工期。工期日历计算器中还包括“起始日期、结束日期、间隔日起、工期天数”等计算功能。华…

小爱同学100个奇葩回复_杰理新一代蓝牙芯片将内置小爱同学,语音唤醒、降噪、连续对话加持蓝牙音箱...

在 11 月 20 日召开的小米 AI 生态峰会暨小爱同学 3.0 发布会上&#xff0c;珠海杰理科技作为小爱同学在芯片端赋能的代表企业&#xff0c;带来了 3 款内置小爱同学标准 SDK 的第二代降噪、语音唤醒蓝牙芯片。据杰理科技副总经理胡向军介绍&#xff0c;系列芯片将会于今年年底及…