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下安装使用MongoDB
安装 官网下载: https://www.mongodb.org/ 解压解包 重命名为mongodb 移动到/usr/local/目录下 创建连个软连接 ln -s /usr/local/mongo ...
- PAT (Advanced Level) 1102. Invert a Binary Tree (25)
简单题. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #in ...
- linux 用户管理维护 清缓存
#echo 1 > /proc/sys/ vm/drop_caches 2013.10.10 其实一直user group一直都没去弄清楚 只是没去归类,@@一种是对用户/组直接修改(同时也更改 ...
- C语言中的几种常见排序算法
1.冒泡排序法:如果有N个数,两两相邻进行比较,将最值沉入最后一位置,要进行N-1轮比较, 第一轮要比较N-1次,第2轮只要比较N-1-1次,因为第一次已经把最值沉入最后一位置,故 不需在进行比较一次 ...
- hdu_5110_Alexandra and COS(DP+分块思想)
题目连接:hdu_5110_Alexandra and COS 题意: 给你一个图,X代表宝藏,然后有一个船,它的声纳的频率为D,定船到宝藏的距离为Dis=max(abs(x1-x2),abs(y1- ...
- 转 Fragment 和 FragmentActivity的使用
今天学习下 Android中的 Fragment 和 FragmentActivity,因为没有4.0手机,平台是2.3.3 所以我是使用 v4 support 包来进行学习. 要想用Fragment ...
- FAT32系统中长文件名的存储(转)
FAT32的一个重要的特点是完全支持长文件名.长文件名依然是记录在目录项中的. 为了低版本的OS或程序能正确读取长文件名文件,系统自动为所有长文件名文件创建了一个对应的短文件名,使对应数据既可以用长文 ...
- 转: OGG Checkpoint 详解
1. OGG Checkpoint 详解 定位中断的位置,下次启动从中断的位置开始恢复. 1.target 端配置: 2.一条记录对应一个replicat 一. Extract Checkpoints ...
- 一个基于jQuery的简单树形菜单
在工作中的项目使用的是一个前端基于 jQuery easyui 的一个系统,其中左侧的主菜单使用的是 easyui 中的 tree 组件,不是太熟悉,不过感觉不是太好用. 比如 easyui 中的 t ...
- char*赋值在常量区,不可以修改
char*赋值在常量区,不可以修改,要想修改,用数组. char* = "abc";*(pCh+1) = 'k';//编译正常,运行报错. char pCh[] = "a ...