zoukankan      html  css  js  c++  java
  • 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
    ");
                
        }
        printf("%d%c%d=%f
    ",a,sign,b,c);

    2、使用海伦公式计算三角形的面积。海伦公式的面积为formula,其中p=(a+b+c)/2,a,b,c为三角形三条边长。

    注意:本程序应先判断输入的三个边长是否符合三角形两边之和大于第三边,两边之差小于第三边的条件,如果不符合条件,则不是三角形,不能使用海伦公式往下计算,本程序忽略此判断,假设三个边长符合三角形的边长条件。此判断在下一个程序中会体现出来。

    float a,b,c,p,s;
        printf("请输入三角形三个边长:
    ");
        scanf("%f%f%f", &a, &b, &c);
        
        p = (a+b+c)/2;
        s = sqrt((double)p * (p-a) * (p-b) * (p-c));
        
        printf("三角形的面积是%.2f
    ",s);

    3、输入三角形的三条边长,判断三角形是直角三角形还是等边、等腰、一般三角形。使用if嵌套完成。

      float a, b, c;
        
        printf("请输入三角形三个边长:
    ");
        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("输入是正三角形
    ");
                }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("输入是等腰直角三角形
    ");
                   else printf("输入是等腰三角形
    ");
                }else if(a*a==b*b+c*c || a*a+b*b==c*c || a*a+c*c==b*b){
                    printf("输入是直角三角形
    ");
                }else printf("输入是一般三角形
    ");
            }
            else printf("输入不是三角形
    ");
        }else{
            printf("输入不是三角形
    ");
        }

     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!!! ",grade); }else printf("输入不合法!!!! ");
  • 相关阅读:
    解决Windows 7下IE11无法卸载、无法重新安装,提示安装了更新的IE版本
    [SQL Server] 数据库日志文件自动增长导致连接超时的分析
    DataTable转换为List<T>或者DataRow转换为T
    比较Js的substring、substr和C#的Substring
    .NET(c#)Parameters
    SheetJS保存Excel文件
    SheetJS将table转为Excel
    JS中使用let解决闭包
    Font Awesome图标的粗细
    滚动条样式修改
  • 原文地址:https://www.cnblogs.com/jiwangbujiu/p/5259502.html
Copyright © 2011-2022 走看看