zoukankan      html  css  js  c++  java
  • 第二次作业。

    1.判断成绩等级。

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

    if else形式:

    #include <stdio.h>
    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
        int a;
        printf("请输入您的成绩:
    ");
        scanf("%d",&a);
        if(a>100||a<0)
        {
            printf("输入错误!
    ");
            exit(0);
        }
        else
        {
            if(a<=100&&a>=90)
            {
                printf("A
    ");
            }
            else if(a<=89&&a>=80)
            {
                printf("B
    ");
            }
            else if(a<=79&&a>=70)
            {
                  printf("C
    ");
            }
            else if(a<=69&&a>=60)
            {
                printf("D
    ");
            }
            else
            {
                printf("E
    ");
            }
        }
        return 0;
    }

    else的后边没有条件。

    在输入和输出时加 看着更好。

    switch case形式:

    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
        int a,b;
        printf ("请输入您的成绩:
    ");
        scanf("%d",&a);
        b=a/10;
        if(a>100||a<0)
        {
            printf("输入错误!
    ");
            exit(0);
        }
        else
        {
            switch(b)
            {
                case 10:printf("A
    ");
                  break;
                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;
    }

    case 后的语句不必加括号。

    此问题用switch case 更加简洁。

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

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

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

       想输出的数逆序0开头,是几位数就应该用%0?d。

          3. 回文数问题

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

    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
        int a,b,c,d,e,f;
        printf("请输入您的五位整数:
    ");
        scanf("%d",&a);
        if(a<10000||a>=100000)
        {
            printf("输入的不是五位数!
    ");
            exit(0);
        }
        else
        {
            b=a/10000;
            c=a/1000%10;
            d=a/100%10;
            e=a%100/10;
            f=a%100%10;
        }
        if(b==f&&c==e)
        {
            printf("此为回文数。
    ");
        }
        else
        {
            printf("这个数不是回文数。
    ");
        }
        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;
        double y;
        printf("请输入您的x值,x属于0-20:
    ");
        scanf("%d",&x);
        if(x<5&&x>=0)
        {
            y=-x+2.5;
            printf("%.3lf
    ",y);
        }
        else if(x>=5&&x<10)
        {
            y=2-1.5*(x-3)*(x-3);
            printf("%.3lf
    ",y);
        }
        else if(x>=10&&x<20)
        {
            y=x/2-1.5;
            printf("%.3lf
    ",y);
        }
        else
        {
            printf("您输入的数不符合x的范围
    ");
        }
        return 0;
    }

    问题:初始时我用的float定义的y,但是电脑显示是错误的,然后我换成double就没有问题了。

    原因:?

  • 相关阅读:
    HP惠普战66电源黄灯闪烁无法充电
    C#.NET rabbit mq 持久化时报错 durable
    手动解压安装mysql8.0 on windows my.ini
    C#.NET MySql8.0 EF db first
    EF MYSQL 出现:输入字符串的格式不正确
    EF MYSQL DB FIRST 出现2次数据库名
    mysql windows 下配置可远程连接
    团队项目的Git分支管理规范
    一个简单的软件测试流程
    微服务架构下的质量迷思——混沌工程
  • 原文地址:https://www.cnblogs.com/lmlmlm/p/5965623.html
Copyright © 2011-2022 走看看