C语言-switch语句
switch (表达式的值) {
case 1:
语句1
break;
case 2:
语句2
break;
case 3:
语句3
break;
case 4:
语句4
break;
......
default:
默认语句
break;
1、适用于离散值的开关判断,可以转换成一段连续的范围
2、注意case穿透,break的使用。
3、可以把各个case值定义为enum枚举或者使用宏定义定义别名
1、使用switch语句完成:输入一个简单的两个数字加减乘除运算的式子,使用switch通过转换加减乘除符号计算各种情况下式子的值,也就是一个简单的计算器:
int a,b;
float c;
char sign; printf("请输入要运算的数字:");
scanf("%d",&a);
getchar(); //在输入第一个数字后按回车确认,使用getchar在读取sign的时候会错误的把回车符读进来,所以先使用getchar把这个字符读走。
printf("请输入要进行的运算:"); sign=getchar();
printf("请输入要运算的数字:");
scanf("%d",&b); switch(sign) {
case '+':
c=a+b;
break;
case '-':
c=a-b;
break;
case '*':
c=a*b;
break;
case '/':
if (b) {
c=a/b;
}else
printf("除数不能为0\n"); }
printf("%d%c%d=%f\n",a,sign,b,c);
2、使用海伦公式计算三角形的面积。海伦公式的面积为,其中p=(a+b+c)/2,a,b,c为三角形三条边长。
注意:本程序应先判断输入的三个边长是否符合三角形两边之和大于第三边,两边之差小于第三边的条件,如果不符合条件,则不是三角形,不能使用海伦公式往下计算,本程序忽略此判断,假设三个边长符合三角形的边长条件。此判断在下一个程序中会体现出来。
float a,b,c,p,s;
printf("请输入三角形三个边长:\n");
scanf("%f%f%f", &a, &b, &c); p = (a+b+c)/;
s = sqrt((double)p * (p-a) * (p-b) * (p-c)); printf("三角形的面积是%.2f\n",s);
3、输入三角形的三条边长,判断三角形是直角三角形还是等边、等腰、一般三角形。使用if嵌套完成。
float a, b, c;
printf("请输入三角形三个边长:\n");
scanf("%f%f%f", &a, &b, &c);
if (a> && b> && c>) {
if (a+b>c && a+c>b && b+c>a) {
if (a==b && b==c) {
printf("输入是正三角形\n");
}else if(a==b || b==c || a==c){
if(a*a==b*b+c*c || a*a+b*b==c*c || a*a+c*c==b*b)
printf("输入是等腰直角三角形\n");
else printf("输入是等腰三角形\n");
}else if(a*a==b*b+c*c || a*a+b*b==c*c || a*a+c*c==b*b){
printf("输入是直角三角形\n");
}else printf("输入是一般三角形\n");
}
else printf("输入不是三角形\n");
}else{
printf("输入不是三角形\n");
}
4、输入一个百分制的成绩,使用switch语句把此成绩转换为A,B,C,D的等级制并输出:
int score=0;
char grade='0';
scanf("%d",&score);
if (score>= && score<=) {
switch (score/) {
case :
case :
grade = 'A';
break;
case :
grade = 'B';
break;
case :
grade = 'C';
break;
case :
grade = 'D';
break; default:
grade ='N';
break;
}
printf("该成绩转换为等级制为%c!!!\n",grade); }else
printf("输入不合法!!!!\n");
C语言-switch语句的更多相关文章
- R语言Switch语句
R语言Switch语句 switch语句允许一个变量值的列表来平等进行测试.每个值被称为一个条件(情况),变量被接通检查每个条件(情况). 语法 在R语言中创建switch语句的基本语法是: 以下规则 ...
- C语言switch语句
C语言虽然没有限制 if else 能够处理的分支数量,但当分支过多时,用 if else 处理会不太方便,而且容易出现 if else 配对出错的情况.例如,输入一个整数,输出该整数对应的星期几的英 ...
- 1.4 Go语言-switch语句(转)
与串联的if语句类似,switch语句提供了一个多分支条件执行的方法.不过在这里用一个专有名词来代表分支——case.每一个case可以携带一个表达式或一个类型说明符.前者又可被简称为case表达式. ...
- C语言-switch语句的使用。对文件的输出处理。for循环和if的结合使用。
//函数fun功能:统计字符串中各元音字母的个数,注意:不区分大小写. //重难点:switch语句的使用. #include <stdlib.h> #include <conio. ...
- PROCESS_YIELD()宏和C语言的switch语句< contiki学习笔记之七>
写在前面: 按照main()函数的代码一行一行的分析,该是看到了 etimer_process 这个位置.但是etimer_process实现里的一个宏 PROCESS_YIELD()引出了很多故事 ...
- go语言基础之switch语句 和 fallthrough 用途
Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码: 示例1 ...
- go语言之if语句和switch语句和循环语句
1.if语句 package main import ( "fmt" "io/ioutil" ) func main() { //流程控制 //使用常量定义一个 ...
- 【C语言】-条件语句-switch语句
switch语句: 用于直接处理不同情况下的多路问题. switch语句又可称为开关语句,其执行流程和多分支if语句类似. switch (表达式) { case 常量表达式1:语句组1;break; ...
- C语言switch中case后跟随break语句
1.case后面的常量表达式实际上只起语句标号作用,而不起条件判断作用,即“只是开始执行处的入口标号”.因此,一旦与switch后面圆括号中表达式的值匹配,就从此标号处开始执行:而且执行完一个case ...
随机推荐
- 把Ubuntu用户目录下的目录名改成英文
直接改名字是不行的,一重启就回去了 方法一: 把中文文件夹改成相应的英文文件夹,再修改配置文件 ~/.config/user-dirs.dirs XDG_DESKTOP_DIR="$HOME ...
- 利用Hierarchy Viewer优化布局
好久没更新博客了,趁着清明来写点什么. 今天来讲下如何使用android中提供的工具优化我们的布局.首先我们写一个最简单的框架布局. <?xml version="1.0" ...
- Win7与Ubuntu双系统时卸载Ubuntu的方法
Win7与Ubuntu双系统时卸载Ubuntu的方法 [日期:2010-03-26] 来源:Ubuntu社区 作者:Ubuntu编辑 [字体:大 中 小] 1. 下载MBRFix工具,放 ...
- FragmentActivity
子fragment 调用 FragmentActivity ((FragmentActivity) getActivity()).updateUnreadLabel(); FragmentActivi ...
- 解开神秘面纱之“AngualrJS 中指令相关的嵌入作用域和模板作用域”
原文:https://www.airpair.com/angularjs/posts/transclusion-template-scope-in-angular-directives#r1 原标题: ...
- Google IP
http://173.194.130.4/http://64.233.167.165/
- Material Design设计的开源代码
https://github.com/telly/FloatingAction http://www.csdn.net/article/2014-11-21/2822753-material-desi ...
- CSS之基础
css是英文Cascading Style Sheets的缩写,称为层叠样式表,用于对页面进行美化.存在方式有三种:元素内联.页面嵌入和外部引入,比较三种方式对优缺点. 语法:style = &quo ...
- MySQL:MySQL的基本操作
1.数据库登录 格式:mysql -h主机地址 -u用户名 -p用户密码 -P端口 -D数据库 -e “SQL内容” [root@wulaoer ~]# mysql -uroot -p 2.修改密码 ...
- 用Date.ToString()输出中英文月份
DateTime.Now.ToString("dddd,dd MMMM,yyyy")//输出 星期三,30 一月,2008DateTime.Now.ToString(" ...