C语言-选择结构

合集下载

C语言_选择结构

C语言_选择结构

4
例 应避免对实数作相等或不等的判断 如 1.0/3.0*3.0==1.0 结果为 0 可改写为:fabs(1.0/3.0*3.0-1.0)<1e-6
C Programming Language
逻辑运算符和表达式
逻辑运算符
种类: ! && || 逻辑运算真值表(见教材) (逻辑运算--->产生真假值的运算)
关系运算符

3
种类:< <= = = >= > != 结合方向:自左向右 优先级7 (低) 优先级别: 关系表达式的值:是逻辑值“真”或“假”, 用1和0表示c>a+b 例 int a=3,b=2,c=1,d,f; 例 //c>(a+b) a>b!=c //(a>b)!=c a>b //表达式值1 a==b<c //a==(b<c) (a>b)==c //表达式值1 a=b>c //a=(b>c) b+c<a //表达式值0 d=a>b // d=1 C Programming Language f=a>b>c // f=0
11
C Programming Language
7. 已知int x=15,y=5; 执行语句 printf(“%d\n”,x%=(y%=2));后,输出结果为____。 8. int a=3,b=4,c=5;则值为0的表达式是() A) „a‟&&„b‟ B) a<=b C) a||b+c&&b-c D) !((a<b)&&!c||1) 9. “20<x<30或x<-100”的C语言表达式是____。 10. main( ) { int a=-1,b=4,k; k=(a++<=0)&&(!(b--<=0)); printf(“%d%d%d”,k,a,b); } 若改为++a<0呢?

C语言选择结构

C语言选择结构

选择结构(if & switch)If语句一、if的三种结构1、单分支结构(if结构)If(表达式)语句;2、双分支结构(if-else结构)If(表达式)语句1;else语句2;3、多分支结构(if-else-if结构)If(表达式1)语句1;else if(表达式2)语句2;……else(表达式n-1)语句n-1;else语句n;说明:(建议在分支语句上加大括号,以减少错误)○1语句中的表达式可以是任意表达式:if(x) y=1\x;else y=10000;○2一个if结构不可分割;○3一个分支中包含多个语句时,要用{};○4else和else-if不是独立的,其前方必须有与之配对的if语句;二、if语句的嵌套在if语句中,又包含一个或多个if语句:if(score>=80)if(score>=90) printf(“A”);else printf(“B”);elseif(score>=60) printf(“C”);else printf(“D”);注意else与if的匹配三、条件运算符如果两个分支的内容都是给同一个变量赋值,则可用简单的条件运算符处理:if(a>b) max=a;else max=b;可用: max=a>b ? a : b;赋值运算符右边为一条件表达式。

条件表达式的一般形式:表达式1 ?表达式2 :表达式3条件表达式的执行过程: a>b ? a : b优先级:低于关系运算符,高于赋值运算符。

结合性:右结合性。

Switch(多分支)1、适用于根据一个表达式的值就可确定走哪个分支的情况。

switch(表达式){常量表达式1:语句1常量表达式2:语句2┋常量表达式n:语句ndefault:语句n+1}注意:常量表达式不可以是字符串2、switch一般配合break使用:switch (控制表达式) {case 常量表达式:语句列表;break;case 常量表达式:语句列表;break;...default:语句列表}说明:1、break用来跳出switch语句块。

C语言选择结构

C语言选择结构

C语言选择结构选择结构是C语言中的一种流程控制结构,用于根据给定的条件选择不同的执行路径。

本文将详细介绍C语言中的选择结构以及其使用。

选择结构主要包括if语句、if-else语句、else if语句和switch 语句。

1. if语句if语句是最简单的选择结构,用于根据给定条件决定是否执行段代码。

其语法结构为:if (condition)//如果条件为真,执行这里的代码其中,condition是一个表达式,如果它的值为真,则执行if语句中的代码块。

if语句也可以与else语句结合使用,使得在条件为假时执行不同的代码块。

2.if-else语句if-else语句是在if语句的基础上增加了一个分支,用于在条件为假时执行另外一段代码。

其语法结构为:if (condition)//如果条件为真,执行这里的代码else//如果条件为假,执行这里的代码如果if语句的条件为真,则执行if语句中的代码块,否则执行else语句中的代码块。

3.else if语句else if语句用于在多个条件之间进行选择,并根据不同的条件执行相应的代码块。

其语法结构为:if (condition1)//如果条件1为真,执行这里的代码else if (condition2)//如果条件1为假,条件2为真,执行这里的代码else//如果条件1和条件2都为假,执行这里的代码在多个else if语句中,只有第一个满足条件的语句会被执行,其他的else if和else语句会被忽略。

4.switch语句switch语句是用来根据不同的取值来执行不同的代码块。

其语法结构为:switch (expression)case constant1:// 如果expression的值等于constant1,执行这里的代码break;case constant2:// 如果expression的值等于constant2,执行这里的代码break;...default:// 如果expression的值与之前的常量都不匹配,执行这里的代码expression 表达式的值会与每个 case 后面的常量进行比较,如果匹配则执行相应的代码块,可以使用 break 语句来跳出 switch 代码块。

选择结构c语言

选择结构c语言

选择结构c语言选择结构是C语言中的一种重要语句,它可以根据条件的真假来选择执行相应的语句块,从而实现程序的不同流程控制。

本篇文章将详细介绍C语言中选择结构的使用方法及注意事项。

一、if语句if语句是C语言中最基本的选择结构,其语法结构为:if(条件表达式){//当条件表达式为真时执行的语句块}其中,条件表达式一般是关系表达式或逻辑表达式,其返回值为真或假。

当条件表达式为真时,执行花括号中的语句块;当条件表达式为假时,跳过整个if语句块,继续执行下一条语句。

示例代码:#include<stdio.h>int main(){int age;printf("请输入您的年龄:");scanf("%d",&age);if(age>=18){printf("您已经成年!\n");}printf("程序结束!\n");return 0;}该程序根据输入的年龄判断是否成年,并输出相应的提示信息。

二、else语句如果if语句的条件表达式为假,程序会直接跳过整个if语句块。

如果需要在条件为假时执行一些操作,可以使用else语句。

else语句的语法结构为:if(条件表达式){//当条件表达式为真时执行的语句块}else{//当条件表达式为假时执行的语句块}示例代码:#include<stdio.h>int main(){int age;printf("请输入您的年龄:");scanf("%d",&age);if(age>=18){printf("您已经成年!\n");}else{printf("您还未成年!\n");}printf("程序结束!\n");return 0;}该程序根据输入的年龄判断是否成年,并输出相应的提示信息。

C语言-第4章 选择结构程序设计

C语言-第4章 选择结构程序设计

第4章选择结构程序设计注:选择结构的考点,最重要的有两个,一个是逻辑表达式的值,另一个是分支界限。

弄明白这两个知识点,就能够以不变应万变了。

一、单项选择题1. 在C语言中,能代表逻辑值"真"的是。

A) true B)大于0的数C)非0整数D)非0的数2. 表示关系x<=y<=z的c语言表达式为。

A) (x<=y)&&(y<=z) B) (x<=y)AND(y<=z) C) (x<=y<=z) D) (x<=y)&(y<=z)3. 能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是。

A) a>=10 or a<=0 B) a>=0|a<=10 C) a>=10 &&a<=0 D) a>=10‖a<=04、判断char型变量c1是否为大写字母的表达式为。

A)’A’<=c1<=’Z’ B)(c1>=’A’) & (c1<=’Z’)C)(’A’<=c1)AND (‘Z’>=c1) D)(c1>=’A’)&& (c1<=’’Z’)5. 有定义char c; c=getchar(); 判断字符变量c为大写字母的正确表达式为。

A) ‘A’=<c<=’Z’ B)c>=‘A’&& c<=’Z C)A=<c<=Z D) c>=A && c<=Z6. 设有语句“int a=4;b=3,c=-2,d=2;”,则逻辑表达式“a>0&&b&&c<0&&d>0”的值是。

A)1B)0 C)-1 D)出错7. 设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是。

C语言基础入门算法的基础招式--选择结构

C语言基础入门算法的基础招式--选择结构

Raptor综合图
选择 结构
分类
单分支选择 结构
双分支选择 结构
多分支选择 结构
内容小结
谢谢聆听
创新教育 引领未来
65/47
步骤五:支路5上输出提示符号有误
Raptor图
66/47
Raptor图
步骤六:思考如果输入的是2/0,刚才的设计会提示错误吗? 如何修改程序? 1. 加上除数不能为零判断 2. 先判断再计算除法,如果除数不为零,计算并输出结果,
否则提示wrong
67/47
步骤七:完成最终Raptor图。
1. 151. <. 1=2.a0aag<ggee=e!=a&=g1&=e51&a&5&g&ea<&gs=eesx<1e=0=x“=3|0|“女2&男”0&<”saegxe=&“&男ag”e<30 && sex=“女” 2. 252. <. 2=2.a0aag<ggee=e!=aa=gn1=ed51aa5ngnadedn<asd=gesxe1e=<0x“==o3“女r02男”0a”<ndagseexa=n“d 男ag”e<30 and sex=“女”
本节课目标
案例1.1:输入两个数,输出较大值 要求: 1. 分析问题(自然语言描述) 2. 画出程序流程图 3. 设计Raptor图,输出结果
案例一
38/47
案例1.1:输入两个数,输出较大值 要求: 1. 分析问题(自然语言描述) 2. 画出程序流程图 3. 设计Raptor图,输出结果
案例一
自然语言描述
步骤一:先画出主体部分

C语言-switch选择结构

C语言-switch选择结构

C语⾔-switch选择结构⽬录switch 选择结构/*if(条件表达式){代码块}switch(条件表达式){case 整数:语句;break;case 整数:语句;break;default:语句;break;}// switch 会取出条件表达式的值,如果与 case 后⾯整数相等就会执⾏这个 case 下的语句,break 就会跳出,如果前⾯的都不满⾜,那么就会执⾏ default// 1,拿到的条件表达式的值必须是整数才⾏// 2,利⽤条件表达式的值与 case 后⾯的整数是否相等,如相等,就会执⾏该 case 后⾯的语句,// 3,执⾏完该语句,遇到 break 就会结束整个 switch 语句,也就是说后⾯得有语句都不会执⾏// 4,如果前⾯的 case 后⾯值与条件表达式的值不相等就会继续执⾏后⾯的 case// 5,如果前⾯的条件表达式与 case 的整数都不相等就会执⾏ default 的case*/int age = 1;switch (age) {case 3:printf("还在喝奶的阶段");break; // 执⾏到 break 就会结束 switch 语句case 6:printf("该上⼩学了");break;case 18:printf("该去⽹吧打游戏了");break;default:printf("该好好上班,挣钱养家");break;}switch 的结束执⾏到相等的 case 后⾯的整数,遇到 break执⾏到 switch 语句的⼤括号如果执⾏到对应的 case 时,但是没有写 break,此时后⾯的 case 和 default 语句会失效,但是⾥⾯的代码块不会失效(case 的穿透问题) int age = 6; // age = 6 的时候switch (age) {case 3:printf("还在喝奶的阶段");break;case 6:printf("该上⼩学了"); // 执⾏到这个 case 的代码,但是没有写 break,后⾯的 case 和 default 代码就会失效.但是⾥⾯的代码块像 parinf 不会失效// 没有写 breakcase 18:printf("该去⽹吧打游戏了");// 没有写 breakdefault:printf("该好好上班,挣钱养家");// ,没有写 break}// 相当于执⾏了这个代码int age = 6; // age = 6 的时候switch (age) {case 3:printf("还在喝奶的阶段");break;printf("该上⼩学了"); // 执⾏到这个 case 的代码,但是没有写 break,后⾯的 case 和 default 代码就会失效.但是⾥⾯的代码块像 parinf 不会失效 // 没有写 break// case 18:printf("该去⽹吧打游戏了");// 没有写 break// default:printf("该好好上班,挣钱养家");// ,没有写 break}// 控制台输出:该上⼩学了该去⽹吧打游戏了该好好上班,挣钱养家最后⼀个case 或者 default后⾯的 break 可以省略,因为后⾯就是switch 的⼤括号,也是代表 switch 的结束switch 的注意点Switch的条件表达式必须是返回整数的格式,也就是说()中只能放整数// 只有整数类型才可以哦float num = 10.3f;switch (num) { // 报错case 10:printf("是⼀个⼩数,会打印么?");break;default:break;}// char 类型可以,char 类型可以转换为整数char str = 'a';switch (str) {case 'a':printf("char 类型是可以的,因为 char 类型可以转换为整数,char 类型的底层是阿斯克码 ");break;default:printf(" ");break;}case 的取值必须是整数,或者能够转换为整数的类型case 的取值不能重复int num = 10;switch (num) {case 10:printf("10");break;case 10: // 报错,case 不能重复printf("10");break;default:printf(" ");break;}case 后⾯不能放变量因为系统在编译的时候会对 switch后⾯的 case进⾏优化,会根据后⾯ case 的值⽣成⼀个取值表 int num = 10;switch (10) {case num: // 报错,不能放变量printf("10");break;default:printf(" ");break;}default 的位置⽆论 default 的位置写在哪个位置,都是最后执⾏如果 default 放在前⾯了,那么就⼀定要加上 break,不能省略只要 default 满⾜,那么后⾯的 case 也会失效,所以注意写上 breakswitch 练习/*要求⽤户输⼊⼀个分数,根据⽤户输⼊的分数输出对应的等级*/printf("请您输⼊⼀个分数,已回车结束\n");int garde = 0;scanf("%i",&garde);// 第⼀种⽅法switch (garde / 10) { // 分数除以 10 再利⽤隐式转换为 int 类型就可以得到整数case 10: // 利⽤ case 的穿透case 9:printf("A");break;case 8:printf("B");break;case 7:printf("C");break;case 6:printf("D");break;default:printf("E");break;}// 第⼆种⽅法if (garde >= 90 && garde <= 100){printf("A");}else if (garde >= 80 && garde <= 89){printf("B");}else if (garde >= 70 && garde <= 79){printf("C");}else if (garde >= 60 && garde <= 69){printf("D");}else if (garde >= 0 && garde <= 59){printf("E");}else{printf("输⼊成绩错误");}// 第三种⽅法(巧妙的利⽤ if else if 的结构,从上往下执⾏,第⼀条不满⾜执⾏到第⼆条,执⾏到后⾯的 else if 代表肯定前⾯的条件不符合.所以) if (garde < 0 || garde > 100){printf("您输⼊的分数不对");}else if (garde >= 90 && garde <= 100){printf("A");}else if (garde >= 80){printf("B");}else if (garde >= 70){printf("C");}else if (garde >= 60){printf("D");}else{printf("E");}return 0;}switch 的局限性在开发中中 if ⽐较多,⽐较灵活如果说是对固定的值,进⾏判断,并且这些值的数量不多的时候可以使⽤ switch从理论上来说 switch的性能效率要⽐ if ⾼// 练习 2/*// 从键盘输⼊⼀个数字,判断其是哪个季节printf("请您输⼊⼀个数字,以回车结束");int num = 0;scanf("%i",&num);switch (num) {case 12:case 1:printf("春节");break;case 6:case 7:case 8:printf("夏季");break;case 9:case 10:case 11:printf("秋季");break;default:printf("你输⼊的是啥玩意");break;}*/// 写⼀个计算器,⽤户输⼊⼀个数,操作符,再⼀个数,根据操作符计算结果/*printf("请您输⼊第⼀个数,操作符,和第三个数,以逗号分割,以回车结束\n");printf("操作符:1:+,2:-,3:/,4:*\n");int num1,num2,num3;;scanf("%i,%i,%i",&num1,&num2,&num3);switch (num2) {case 1:printf("两数相加:result = %i\n",num1+num3);break;case 2:printf("两数相减:result = %i\n",num1-num3);break;case 3:printf("两数相除:result = %i\n",num1/num3);break;case 4:printf("两数相乘:result = %i\n",num1*num3);break;default:printf("num2只接受 1-4 的整数");break;}*/printf("请您输⼊第⼀个数,以回车结束\n");int num1,num2;scanf("%i",&num1);printf("请您输⼊操作符,以回车结束\n");// char temp;// scanf("%c",&temp);getchar(); // 使⽤getchar()将前⾯的\n 取出来char op;scanf("%c",&op); // 此时注意前⾯有⼀个scanf 函数,输⼊了回车后此时输⼊缓冲区中还是保留的\n,所以第⼆个 scanfr 让输⼊⼀个%c 类型的字符时就不会让你输⼊了 printf("请您输⼊第⼆个数,以回车结束\n");scanf("%i",&num2);int result = -1;switch (op) {case '+':result = num1 + num2;break;case '-':result = num1 - num2;break;case '*':result = num1 * num2;break;case '/':result = num1 / num2;break;default:printf("只接受 '+','-','*','/' 操作符");break;}printf("result = %i\n",result);return 0;}。

C语言程序设计—选择结构

C语言程序设计—选择结构

C语言程序设计—选择结构C语言是一门广泛应用于计算机科学和软件开发领域的编程语言。

它提供了丰富的选择结构,允许程序根据条件来选择不同的执行路径。

选择结构是控制程序流程的重要组成部分,它基于条件的真假来决定不同的操作。

1. if语句if语句是C语言中最常用的选择结构之一。

它用于根据条件的真假来执行不同的代码块。

if语句的基本格式如下:```if (条件) {// 条件为真时执行的代码块}```可以根据需要添加else语句来处理条件为假的情况。

若条件为假,则执行else后的代码块。

示例如下:```if (条件) {// 条件为真时执行的代码块} else {// 条件为假时执行的代码块}```2. switch语句switch语句用于在多个可能的选项之间选择一个执行路径。

它将某个变量的值与一系列case标签进行比较,并根据匹配的结果执行相应的代码块。

switch语句的基本格式如下:```switch (表达式) {case 值1:// 执行代码块1break;case 值2:// 执行代码块2break;default:// 默认执行代码块break;}在switch语句中,表达式的值会与每个case标签进行比较,如果匹配则执行相应的代码块。

在每个代码块的末尾,使用break语句来跳出switch语句,以避免执行其他不相关的代码块。

如果没有匹配到任何一个case标签,将执行默认的代码块。

3. 嵌套选择结构C语言允许选择结构的嵌套使用,即在一个选择结构中嵌入另一个选择结构。

这样可以根据多个条件进行判断,实现更灵活和复杂的程序逻辑。

```if (条件1) {if (条件2) {// 执行代码块1} else {// 执行代码块2}} else {// 执行代码块3}在上述示例中,先判断条件1,如果条件1为真,则进一步判断条件2。

根据不同的条件结果执行相应的代码块。

选择结构是C语言程序设计中非常重要的部分,它使程序能够根据不同的条件来选择不同的执行路径。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

clr scr(); /*清屏*/选择结构一、单分支选择语句1. 格式if(表达式)语句2. 功能当表达式的值为非0(真、条件成立)时,执行“语句”。

否则执行if之后的下一句。

3. 说明(1)表达式可以是任意类型的表达式(结果是数值型),但通常是关系或逻辑表达式。

也可以是数值型的常量或变量(它们是最简单的表达式)。

(2)“语句”可以是以分号结束的单个语句,也可以是..复合语句。

不可以是多一个..个语句。

4. 举例例1、任意读入两个整数,然后输出其中的较大者。

main(){int x,y;scanf("%d%d",&x,&y);if(x>y)printf("%d\n",x);if(y>=x)printf("%d\n",y );}二、双分支if语句【格式】if(表达式)语句1else语句2【功能】【说明】1.“语句1”和“语句2”可以分别是以分号结束的单个语句,也可以分别是一个复合语句。

都不可以是多个语句。

2. else子句不可以独立存在。

改写上例:任意读入2个整数,输出较大数。

main(){int x,y;scanf("%d%d",&x,&y); if(x>y)printf("%d\n",x); else /*暗含两种情况:<和=*/printf("%d\n",y);}例如:任意读入2个整数,按从小到大的顺序输出这2个数。

【法1】main(){int x,y;scanf("%d%d",&x,&y); if(x<y)printf("%d,%d\n",x,y); elseprintf("%d,%d\n",y,x);}【法2:借助第三数,完成两数的交换】让x中放较小数,y中放较大数。

main(){int x,y;int t; /*中间变量*/ scanf("%d%d",&x,&y);if(x>y){t=x; x=y; y=t;} printf("%d,%d\n",x,y); }【基本算法一:两数交换,借助第三数】t=x; x=y; y=t;【思考:本题改成“任意读入3数,从小到大输出”】三、多分支if语句【格式】if(表达式1)语句1else if(表达式2)语句2else if(表达式3)语句3……else语句n+1【功能】【注意】else和if之间有空格。

最后的else子句可以省。

【举例】例1、批发铅笔,批发量x,100≤x<300,打7折;300≤x<500,打5折;500≤x<1000,打4.5折;x>=1000,打4折。

其余不打折。

求顾客应付款。

(1元/支)【法1:多分支选择语句】main(){int x;float cost; scanf("%d",&x); if(x>=1000)cost=1*x*0.4; else if(x>=500)cost=1*x*0.45; else if(x>=300)cost=1*x*0.5;else if(x>=100)cost=1*x*0.7;elsecost=1*x;printf("cost=%f\n",cost );}%m.n f(m、n是正整数,通常m>n,m表示整个实数所占显示宽度,包含小数点,实数宽度不够时,左补空格;n表示小数点右边的位数。

)例如:printf("%6.2f\n",3.1415 9);UU3.14(U代表空格)又如:printf("%3.4f\n",3.1415 9);3.1416【注意】%m.nf的格式可以省写成“%.n f”,即可将m 省略。

%-m.n f(若数宽度不够,则右补空格)%.nf(m可以省,满足小数点后保留n位,该实数实际需要占多少位,就占多少位。

)关于整数:%md: 输出的整数若位数不足m位,左补空格。

%-md: 输出的整数若位数不足m位,右补空格。

例:任意读入一个年份,判断其是否为闰年。

(能被400整除,或能被4整除且不能被100整除的,就是闰年)四、if语句的嵌套(if语句中含有另一个if语句)例1:铅笔打折的改写。

main(){int x;float cost;scanf("%d",&x); if(x<100)cost=1*x;elseif(x<300)cost=1*x*0.7;elseif(x<500)cost=x*1*0.5;elseif(x<1000)cost=1*x*0.45;elsecost=1*x*0.4; printf("cost=%.2f\n",cost);}【注意】(1)外选择语句必须完整地包含内选择语句,请缩进书写。

(2)else总是和前面最近的一个没有配对且有资格配对的if配对。

例2、任意读入一个字符,判断其是否为数字字符,若是,进一步判断其是否为’5’,是就输出该字符及其ASCII码值;若不是数字字符,就输出“Is not digit!”。

【法一:利用ASCII值判断】#include<stdio.h> main(){char c;c=getchar();if(c>='0'&&c<='9'){if(c=='5')printf("%c,%d\n",c,c);}elseputs("Is not digit!\n");}【用{}取消内if的配对资格!】【法二:利用系统函数isdigit判断数字字符】用系统函数(库函数):isdigit(字符型数据)含义是判断“字符型数据”是否为数字字符。

(是,则函数返回值为非0;否则为0),使用时一定要加头文件“c type.h”。

#include <stdio.h>#include <ctype.h> main(){char x;scanf("%c",&x);if(isdigit(x)!=0) /*逻辑等价于isdigit(x)*/{if(x=='5')printf("%c:%d\n",x,x);} elseprintf("Is notdigit!\n");}【将光标移到系统函数名下方,然后按Ctrl+F1,弹出对应头文件名。

按Esc键回到蓝色编辑环境。

】【结论】(1)用{}扩住某单分支if 语句,可以取消其与else的配对资格!(2)两组逻辑等价式:【解释:】所谓“逻辑等价”就是,当某式子的结果被当做逻辑值用时,其逻辑等价式的真值与该式子完全一致。

五、多分支switch语句【格式】switch(表达式){case 常量1:语句块1;break;case 常量2:语句块2;break;case 常量3:语句块2;break;……default: 语句n+1;}【说明】(1)switch后的表达式通常是整型或字符型表达式(常量、变量);(2)case后的常量必须是整型或字符型。

(3)“break;”语句只能出现在switch或循环语句中。

作用是跳出所在语句结构。

(4)“语句块1;……语句块n+1;”可以是若干个语句,不必构成一个复合语句。

(5)default分支可以省略。

【功能】例1:改写铅笔。

#include<stdio.h> main(){int x;float cost;scanf("%d",&x);switch(x/100){case 0: cost=1*x; break;case 1:case 2: cost=1*x*0.7;break; case 3:case 4: cost=1*x*0.5;break;case 5: case 6: case 7: case 8:case 9: cost=1*x*0.45; break;default:cost=1*x*0.4; }printf("%.2f\n",cost); }【而以下也正确】#include<stdio.h> main(){int x;float cost;scanf("%d",&x); switch(x/100){case 1:case 2: cost=1*x*0.7;break;default:cost=1*x*0.4;br eak;case 3:case 4: cost=1*x*0.5;break; case 5:case 6:case 7:case 8:case 9: cost=1*x*0.45;break;case 0: cost=1*x;}printf("%.2f\n",cost); }【注意】(1)各分支位置可以不分先后(不好!应试的)。

但依然只有最后一个分支可以不加break;语句!。

(2)两个(或以上)相邻分支的操作一样,可将对应语句写在最后一个分支上。

(3)如果前面的分支缺了break语句,则无条件地接着做下一个分支的语句,直到遇到break;或switch 的}为止。

【补充:4个数学函数,要加#include <math.h>】1、pow(x,y)功能:计算x y2、abs(数值型表达式)求“数值型表达式”的绝对值,即|数值型表达式|。

注意:必须是整型数据。

3、fabs(实数表达式) 求绝对值4、sqrt(正数)求“正数”的平方根。

相关文档
最新文档