• 第二次作业


    一、实验内容          

        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
    
      { 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;
        case 5:case 4:case 3:case 2:case 1:case 0:
         printf("E");
         break;
      }
     return 0;
     }
    }
    #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 if(grade<60)
      {
    
       printf("E");
    
    }
     return 0;
    }

    运行结果:

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

    代码 :

    #include <stdio.h>
    int main()
    {
    int n,a,b,c,d,e,f;
    printf("请输入一个不多于5位的正整数:
    ");
    scanf("%d",&n);
    if(n/100000>0||n<0)
     {
     printf("数据错误");
     }
    else if(n/10000>0)
     {
      a=n/10000;
      b=n%10000/1000;
      c=n%10000%1000/100;
      d=n%10000%1000%100/10;
      e=n/10000%1000%100%10;
      f=e*100000+d*1000+c*100+b*10+a;
      printf("%05d是5位数",f);
     }
    else if(n/10000==0&&n/1000>0)
     {
      a=n/1000;
      b=n%1000/100;
      c=n%100/10;
      d=n%100%10;
      f=d*10+c*100+b*10+a;
      printf("%04d是4位数",f);
     }
    else if(n/10000==0&&n/1000==0&&n/100>0)
     {
      a=n/100;
      b=n%100/10;
      c=n%100%10;
      f=c*100+b*10+a;
      printf("%03d是3位数",f);
     }
    else if(n/10000==0&&n/1000==0&&n/100==0&&n/10>0)
     {
      a=n/10;
      b=n%10;
      f=b*10+a;
      printf("%02d是2位数",f);
     }
    else
     {
      printf("%d是1位数",n);
     }
    return 0;
    }

    运行结果:

    3.实验要求:回文数问题

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

    代码:

    #include <stdio.h>
    int main()
    {
     int n,a,b,c,d;
     printf("请输入一个五位数:
    ");
     scanf("%d",&n);
     a=n/10000;
     b=n%10000/1000;
     c=n%10000%1000%100/10;
     d=n%10000%1000%100%10;
     if(a==d&&c==b)
      {
       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("请输入一个大于0小于20的数:
    ");
     scanf("%d",&x);
     if(0<=x&&x<5)
     {
       y=-x+2.5;
      printf("%.3f",y);
     }
     else if(5<=x&&x<10)
     {
      y=2.0-1.5*(x-3)*(x-3);
      printf("%.3f",y);
     }
     else if(10<=x&&x<20)
     {
      y=x/2.0-1.5;
      printf("%.3f",y);
     }
     return 0;
    }

    运行结果:

    二·本次课知识点总结:

    1.

    条件运算符

    一般形式:  表达式1  ? 表达式2  : 表达式3

    优先级:条件运算符优先于赋值运算符,优先级别比关系运算符和算术运算符都低。
    功能:如果表达式1的值为非0,则表达式2的值作为条件表达式的值,否则以表达式3的值作为条件表达式的值。
    条件表达式常用于赋值语句中。
    结合性: 自右至左
    2.

    if语句的嵌套

      当if的条件满足或不满足时要执行的语句也是一条if或if…else语句,称为if语句的嵌套。

    3.

    if语句的嵌套

      当if的条件满足或不满足时要执行的语句也是一条if或if…else语句,称为if语句的嵌套。

    缩进格式并不能暗示else的匹配

    实现if ~ else 正确配对方法:加{ }

    4.

    switch…case...break语句(多路分支结构)

    l表达式是整数型的结果
    l常量可以是常数也可以是常量表达式,且值互不相同。
    l根据表达式的结果,寻找匹配的case,并执行case后面的语句,直到break为止。
    l所有的case都不匹配,则执行default后面的语句
    5.

    swith语句的穿透性

    “case 常量”只是起语句标号作用,在执行完该分支的语句后,若没有break语句,则会顺序执行到下一个case分支中去,称之为switch语句的穿透性。因此,为了保证各分支的正确执行,必须用break语句跳出。

    6.

    错误:switch语句中,case后的常量表达式用一个区间表示或出现关系运算符

    三·实验总结:

    1.输入数据一定要加取地址符

    2.中文英文符号要及时转换

    3.else后面不加括号if后面不加分号

  • 相关阅读:
    8*8LED点阵
    红外收发基础
    MQTT服务器(Win)
    安卓图片显示与网络访问
    Liunx C 编程之多线程与Socket
    JAVA开始(基础篇)
    C语言数据类型及变量整理
    EOS基础全家桶(十五)智能合约进阶2
    EOS基础全家桶(十四)智能合约进阶
    EOS基础全家桶(十三)智能合约基础
  • 原文地址:https://www.cnblogs.com/xxs812/p/5949077.html
Copyright © 2020-2023  润新知