第二次作业

判定成绩等级

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

int main()
{
    int grade;
    printf("请输入你的成绩
");
    scanf("%d",&grade);
    if(90<=grade&&grade<100)
    {
        printf("A
");
    }
    else if(80<=grade&&grade<=89)
    {
        printf("B
");
    }
    else if(70<=grade&&grade<=79)
    {
        printf("C
");
    }
    else if(60<=grade&&grade<=69)
    {
        printf("D
");
    }
    else if(0<=grade&&grade<=60)
    {
        printf("继续努力
");
    }
    else if(100<=grade)
    {
        printf("输入数据错误
");
    }
    else if(grade<=0)
    {
        printf("输入的数据错误
");
    }
    return 0;
}

注意:写程序过程中“&&”与“||”的使用,同时考虑数据超出范围时应如何解决。

#include <stdio.h>
int main()
{
    int a;
    printf("输入你的成绩
");
    scanf("%d",&a);
    switch(a/10)
    {
    case 9:case 10 :
    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;
    default :
    printf("输入的数据错误
");
    }
}

注意:case与数字之间的空格,每一条语句之后要写“break;”

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

#include <stdio.h>
int main()
{
    int a,b;
    printf("输入一个整数
");
    scanf("%d",&a);
    if(a<100000&&a>=10000)
    {
        b=a/10000+a%10000/1000*10+a%1000/100*100+a%100/10*1000+a%10*10000;
        printf("输入的整数为五位数,输出的数值为%05d
",b);
    }
    else if(a<10000&&a>=1000)
    {
        b=a%10*1000+a%100/10*100+a/100%10*10+a/1000;
        printf("输入的整数位四位数,输出的数值为%04d
",b);
    }
    else if(1000>a&&a>=100)
    {
        b=a%10*100+a/10%10*10+a/100;
        printf("输入的整数为三位数,输出的数值为%03d
",b);
    }
    else if(100>a&&10<=a)
    {
        b=a%10*10+a/10;
        printf("输入的整数位二位数,输出的数值为%02d
",b);
    }
    else if(1<a&&a<10)
    {
        b=a;
        printf("输入的整数为一位数,输出的数值为%01d
",b);
    }
    else
    {
        printf("error
");
    }
    return 0;
}

if()后不加分号,同时else前面一定要有与其对应的if

3. 回文数问题

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

#include <stdio.h>
int main()
{
    int a;
    printf("请输入一个五位数整数
");
    scanf("%d",&a);
    if(a%10==a/10000&&(a%100)/10==(a%10000)/1000)
    {
        printf("数据为回文数
");
    }
    else
    {
        printf("输入的数据有误
");
    }
    return 0;
}

注意=的使用  一个“=”代表赋值,两个"=”代表相等

计算分段函数

        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()
{
    float x,y;
    printf("请输入x的值
");
    scanf("%f",&x);
    if(0<=x&&x<5)
    {
        y=2.5+x;
        printf("%.2f",y);
    }
    else if(5<=x&&x<10)
    {
        y=2-1.5*(x-3)*(x-3);
        printf("%.2f",y);
    }
    else if(10<=x&&x<20)
    {
        y=x/2-1.5;
        printf("%.2f",y);
    }
    else
    {
        printf("不符合要求");
    }
    return 0;
}

注意常量是否被定义,同时有小数的应该用float型,系统一般会默认为doulbe行,应及时改正。

原文地址:https://www.cnblogs.com/456abc/p/5949530.html