zoukankan      html  css  js  c++  java
  • 第二次实验

    1判断成绩等级。

    给定一百分制成绩,要求输出成绩的等级。90以上为A,80-89为B,70-79为C,60-69为D,60分以下为E,输入大于100或小于0时输出“输入数据错误”。 分别用if和用switch语句实现

    #include<stdio.h>
    int main()
    {
        int grade;
        printf("输入成绩");
        scanf("%d",&grade);
        if(grade>100||grade<0)
        {
            printf("数据错误");
        }
        else if(grade>=90)
        {
            printf("A");
        }
        else if(grade>=80)
        {
            printf("B");
        }
        else if (grade>=70)
        {
            printf("C");
        }
        else if(grade>=60)
        {
            printf("D");
        }
        else
        {
            printf("E");
        }
        return 0;
     } 

    实验总结:注意判断数据不符合时的情况,不考虑此情况会导致程序无法正确的输出。

    switch

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
        int grade;
        printf("请输入分数");
        scanf("%d",&grade);
        if(grade>100||grade<0)
        {
            printf("数据错误");
            exit(0);
        }
        switch(grade/10)
        {
            case 10:
            case 9:printf("A");
                   break;
            case 8:printf("B");
                   break;
            case 7:printf("C");
                   break;
            case 6:printf("D");
                   break;
            default:printf("E");
        }
        return 0;
    }

    2判断整数位数及逆序输出。

            输入一个不多于5位数的正整数,判断它是几位数并逆序输出。注意验证数据的合法性。

    #include<stdio.h>
    int main()
    {
        long int num;
        int a,b,c,d,e;
        printf("输入不多于五位的正整数");
        scanf("%d",&num);
        e=num/10000;
        d=(num-e*10000)/1000;
        c=(num-e*10000-d*1000)/100;
        b=(num-e*10000-d*1000-c*100)/10;
        a=num-e*10000-d*1000-c*100-b*10;
        if(100000>num&&num>=10000)
        {
            printf("此数为5位数\n");
            printf("倒序数为%d%d%d%d%d\n",a,b,c,d,e);
        }
        else if(10000>num&&num>=1000)
        {
            printf("此数为4位数\n");
            printf("倒序数为%d%d%d%d\n",a,b,c,d);
        }
        else if(1000>num&&num>=100)
        {
            printf("此数为3位数\n");
            printf("倒序数为%d%d%d\n",a,b,c);
        }
        else if(100>num&&num>=10)
        {
            printf("此数为2位数\n");
            printf("倒序数为%d%d\n",a,b);
        }
        else if(10>num&&num>=0)
        {
            printf("此数为1位数\n");
            printf("倒序数为%d\n",a);
        }
        else
        {
            printf("error\n");
        }
        return 0;
         
    }

    实验总结:注意输入时的中文输入,不严谨容易给后面的编译造成麻烦。

    3回文数问题

            给定一个5位数,判断它是否是回文数。例如:12321是回文数。回文数的特点是个位和万位相同,十位和千位相同。

    #include<stdio.h>
    int main()
    {
        long a,b,c,d,x;
        printf("输入五位数");
        scanf("%d",&x);
        d=x/10000;
        c=x%10000/1000;
        b=x%100/10;
        a=x%10;
        if(a==d&&b==c)
        {
            printf("此数是一个回文数\n");
        }
        else
        {
            printf("此数不是回文数\n");
              
        }
        return 0;
          
    }

    实验总结:或与的使用求余。

    4

     计算分段函数

            y=-x+2.5                         0 <= x < 5

            y=2-1.5(x-3)(x-3)        5 <= x < 10

            y=x/2-1.5                     10 <= x < 20

           输入x的值(x为整数),输出y的值,结果保留3位小数。

    #include<stdio.h>
    int main()
    {
        int x;
        float y;
        printf("请输入x的值");
        scanf("%d",&x);
        if(0<=x&&x<5)
        {
            y=-x+2.5;
        }
        else if(5<=x&&x<10)
        {
            y=2-1.5*(x-3)*(x-3);
        }
        else if(10<=x&&x<20)
        {
            y=x/2.0-1.5;
        }
        printf("%.3f\n",y);
        return 0;
    }#include<stdio.h>
    int main()
    {
        int x;
        float y;
        printf("输入x的值");
        scanf("%d",&x);
        if(0<=x&&x<5)
        {
            y=-x+2.5;
        }
        else if(5<=x&&x<10)
        {
            y=2-1.5*(x-3)*(x-3);
        }
        else if(10<=x&&x<20)
        {
            y=x/2.0-1.5;
        }
        printf("%.3f\n",y);
        return 0;
    }

    实验总结: 要梳理清楚方程的解法,这是很重要的,分清情况。

    知识点总结:1.switch (表达式){ case 值1 : 语句1 break; case 值2 : 语句2 break; ... default : 语句n break; } 从表达式值等于某个case语句后的值开始,它下方的所有语句都会一直运行,直到遇到一个break为止。随后,switch语句将结束,程序从switch结束大括号之后的第一个语句继续执行,并忽略其他case。 假如任何一个case语句的值都不等于表达式的值,就运行可选标签default之下的语句。 假如表达式的值和任何一个case标签都不匹配,同时没有发现一个default标签,程序会跳过整个switch语句,从它的结束大括号之后的第一个语句继续执行。

    2。if-else 语句引入了一种二义性问题称为空悬else (dangling-else) 问题,这种问题出现在当if 子句多于else 子句时。问题是这些else 子句分别和哪一个if 子句匹配

  • 相关阅读:
    java 在线网络考试系统源码 springboot mybaits vue.js 前后分离跨域
    springboot 整合flowable 项目源码 mybiats vue.js 前后分离 跨域
    flowable Springboot vue.js 前后分离 跨域 有代码生成器 工作流
    Flowable 工作流 Springboot vue.js 前后分离 跨域 有代码生成器
    java 企业 网站源码 后台 springmvc SSM 前台 静态化 代码生成器
    java 进销存 商户管理 系统 管理 库存管理 销售报表springmvc SSM项目
    基于FPGA的电子计算器设计(中)
    基于FPGA的电子计算器设计(上)
    FPGA零基础学习:SPI 协议驱动设计
    Signal tap 逻辑分析仪使用教程
  • 原文地址:https://www.cnblogs.com/xiongx/p/5965313.html
Copyright © 2011-2022 走看看