第二次作业

实验一:

实验要求:给定一百分制成绩,要求输出成绩的等级。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("请输入自己的成绩O(∩_∩)O~~
");
    scanf("%d",&grade);
    if (grade>100||grade<0)
    {
        printf("输入数据错误。
");
    }
    if (grade>=90&&grade<=100)
    {
        printf("A
");
    }
    else if (grade>=80&&grade<=89)
    {
        printf("B
");
    }
    else if (grade>=70&&grade<=79)
    {
        printf("C
");
    }
    else if (grade>=60&&grade<=69)
    {
        printf("D
");
    }
    else if (grade>=0&&grade<=60)
    {
        printf("E
");
    }
    return 0;
}

运行结果:

另一种:

代码:

#include<stdio.h>
int main()
{
    int G;
    printf("请输入你的成绩
");
    scanf("%d",&G);
    if (G<0||G>100)
    printf("输入错误
");
    else if(G=100)
    printf("A
");
    switch(G/10)
    {
    case 9:printf("A
");
        break;
    case 8:printf("B
");
        break;
    case 7:printf("C
");
        break;
    case 6:printf("D
");
        break;
    case 5:printf("E
");
        break;
    case 4:printf("E
");
        break;
    case 3:printf("E
");
        break;
    case 2:printf("E
");
        break;
    case 1:printf("E
");
        break;
    case 0:printf("E
");
        break;
    }
    return 0;
}

运行结果:

实验二:

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

代码:

#include <stdio.h>
int main()
{
    int a,b,c,d,e,f,g;
    printf("请输入一个不多于5位的整数
");
    scanf("%d",&a);
    if(a/10000>9)
    {
        printf("输入错误!
");
    }
    else if (a/10000!=0)
    {
        b=a/10000;
        c=a%10000/1000;
        d=a%10000%1000/100;
        e=a%10000%1000%100/10;
        f=a%10000%1000%100%10;
        g=b+c*10+d*100+e*1000+f*10000;
        printf("这是一个五位数,倒序数是%05d
",g);
    }
    else if (a/1000!=0)
    {
        b=a/1000;
        c=a%1000/100;
        d=a%1000%100/10;
        e=a%1000%100%10;
        g=b+c*10+d*100+e*1000;
        printf("这是一个四位数,倒序数是%04d
",g);
    }
    else if (a/100!=0)
    {
        b=a/100;
        c=a%100/10;
        d=a%100%10;
        g=b+c*10+d*100;
        printf("这是一个三位数,倒序数是%03d
",g);
    }
    else if (a/10!=0)
    {
        b=a/10;
        c=a%10;
        g=b+c*10;
        printf("这是一个两位数,倒序数是%02d
",g);
    }
    else
    {
        printf("这是一个一位数,倒序数是%d",g);
    }
return 0;
}

运行结果:

实验三:

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

代码:

#include<stdio.h>
int main()
{    
    int a,b,c,d,e,f;
    printf("请输入一个五位数
");
    scanf("%d",&a);
    b=a/10000;
    c=a/1000%10;
    d=a/100%10;
    e=a%100/10;
    f=a%10;
    if (b==f&&c==e)
    {
        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()
{
    int x;
    float y;
    printf("输入x的值");
    scanf("%d",&x);
    if (x>0&&x<=5)
    {
        y=-x+2.5;
        printf("y=%.3f",y);
    }
    else if (x>5&&x<10)
    {
        y=2-1.5*(x-3)*(x-3);
        printf("y=%.3f",y);
    }
    else if (x>=10&&x<20)
    {
        y=x/2-1.5;
        printf("y=%.3f",y);
    }
    else
    {
        printf("超出计算范围O(∩_∩)O");
    }
    return 0;
}

运行结果:

二.本次可知识点总结

1.对关系运算符的应用,>,<,>=,<=,==.

2.对逻辑运算符的应用,&&是与,||是或,!是非。

3.if 语句的结构和switch case的结构用法和基本框架。

4.对一些数学函数,分段函数的运用。

5.对取得结果的位数要求以及小数保留方法。

6.if语句嵌套的方法。

三.实验总结

1.实验过程中经常把==和=用混,==是等于,=是赋值;

2.总是把该用||的地方用&&;

3.在第五个程序中,得到的结果与计算的结果不一致,原来是由于没有注意位数的保留;

4.对于成绩判断的程序代码,丢掉了100分时候的情况,而且一开始没有进行合法输入的判定;

5.不太明白为什么第五个程序中,y要用float...室友告诉我是因为y不是整数..也可以用double;

6.写程序的时候总是丢掉int main后面的()。

原文地址:https://www.cnblogs.com/jj4529926/p/5967469.html