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)/2;
    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>0 && b>0 && c>0) {
        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>=0 && score<=100) {
        switch (score/10) {
            case 10:
            case 9:
                grade = ‘A‘;
                break;
            case 8:
                grade = ‘B‘;
                break;
            case 7:
                grade = ‘C‘;
                break;
            case 6:
                grade = ‘D‘;
                break;

            default:
                grade =‘N‘;
                break;
        }
        printf("该成绩转换为等级制为%c!!!\n",grade);

    }else
        printf("输入不合法!!!!\n");
时间: 2024-12-23 15:52:55

C语言-switch语句的相关文章

go语言switch语句用法

switch是最灵活的一种控制语句,在使用switch时候,需要注意: --左花括号"{"必须与switch处于同一行 --条件表达式不限制为常量或者整数 --单个case中,可以出现多个结果选项 --与C语言等规则相反,G0语言不需要break来明确退出一个case --只有在case中明确添加fallthrough关键字,才会继续执行紧跟的下一个case --可以不设定switch之后的条件表达式,在此种情况下,整个switch结构与多个if....else的逻辑作用等同 --可以

1.4 Go语言-switch语句(转)

与串联的if语句类似,switch语句提供了一个多分支条件执行的方法.不过在这里用一个专有名词来代表分支——case.每一个case可以携带一个表达式或一个类型说明符.前者又可被简称为case表达式.因此,Go语言的switch语句又分为表达式switch语句和类型switch语句.      先说表达式switch语句.在此类switch语句中,每个case会携带一个表达式.与if语句中的条件表达式不同,这里的case表达式的结果类型并不一定是bool.不过,它们的结果类型需要与switch表

C语言:switch语句

如果表达式的值等于常量那么就执行这个常量后面的语句 switch (表达式) { case 常量: 语句; .... break; case 常量: 语句; .... break; default: 语句; .... break; } 注意点:1.case 后面的常量不可以重复 2.break 作用:结束switch语句 3.switch 语句只有遇到break 或者 switch后面大括号才会结束 4.当switch与某一个case匹配了,那么后面的所有case都失效了 5.case 后面只能

Java语言Switch语句详解

课程背景:程序中经常需要处理多种情况的判断,switch语句非常适合处理多分支流程. 核心内容:1.switch语句的概念和用法2.使用switch语句进行流程控制 开发环境:Eclipse 是否提供源码:是 课程等级:入门级别 适应群体:零基础的开发者

C语言-switch语句的使用。对文件的输出处理。for循环和if的结合使用。

//函数fun功能:统计字符串中各元音字母的个数,注意:不区分大小写. //重难点:switch语句的使用. 1 #include <stdlib.h> 2 #include <conio.h> 3 #include <stdio.h> 4 /*************found**************/ 5 void fun(char *s, int num[5]) 6 { int k, i=5; 7 for (k = 0; k < i; k++) 8 /*

【好程序员笔记分享】C语言之switch语句

ios培训------我的c语言笔记,期待与您交流! #include <stdio.h> /* switch (数值) { case 数值1: 语句1; break; case 数值2: 语句2; break; default : 语句3; break; } */ int main() { //int a = 10; // break:退出整个switch语句 // 如果case后面没有break,就会执行后面所有case中的语句,直到遇到break为止 /* int b = 10; swi

PROCESS_YIELD()宏和C语言的switch语句&lt; contiki学习笔记之七&gt;

写在前面:  按照main()函数的代码一行一行的分析,该是看到了 etimer_process 这个位置.但是etimer_process实现里的一个宏 PROCESS_YIELD()引出了很多故事,于是单独把整个宏的东西整理成笔记,贴出来,和学习contiki的伙伴分享. 在说这个宏之前,得先记下c 语言的switch()遭遇. switch()从表面上来看,或许应该是非常简单的问题--C语言的基本功吧.它的使用方式,按照常规来说,如下图所示: 好吧,那就贴一段常规的代码: 1 int ma

c语言:用switch语句处理菜单命令

用switch语句处理菜单命令.在许多应用程序中,用菜单对流程进行控制,例如从键盘输入一个'A'或'a'字符,就会执行A操作,输入一个'B'或'b'字符,就会执行B操作. 解:程序: #include<stdio.h> void add(int x, int y) { printf("x+y=%d\n", x + y); } void mul(int x, int y) { printf("x*y=%d\n", x * y); } int main()

29 Java语言基础选择结构switch语句的格式及其解释 Tooho King

switch 语句的格式 inx = 10 switch(表达式){ case 值1; break; case 值2; break; ... defualt: 语句n-1; break; } 注意  btye short char String 才能作为表达式 long不行 也就是基本类型里面能够转换为int的类型都可以做为case的表达式. 1 public class Test1_DataTypeConversion { 2 3 public static void main(String[