第六次作业

题目1:高速公路超速处罚

实验代码:

#include<stdio.h>
int main ()
{
    int a,b;
    float x;
    scanf("%d %d",&a,&b);
    x = (a-b)/(float)b;
    if (a-b<0.1*b)
    printf("OK
");
    else
    {
        if(a-b<0.5*b)
        printf("Exceed %.0f%%. Ticket 200
",x*100);
        else
        {
        printf("Exceed %.0f%%. License Revoked
",x*100);    
        }
        
     } 
    return 0;
 } 

设计思路:

1.首先分别定义出变量a,b,x,并使它们可以被赋值。

2.给出超速限度的计算方式,即a-b与0.1*b和0.5*b的大小关系。

3.根据计算结果,分别给出输出的语句即可。

调试过程:

本题在代码提交过程中是一遍过,所以没有什么问题。

流程图:

题目2:计算油价

实验代码:

#include <stdio.h>
int main()
{
    int a,b;
    char c;
    float d,e,f;
    scanf("%d %d %c",&a,&b,&c);
    if(c=='m')
    {
        f=0.05;
        if(b==90)
        {
            e=6.95;
            d=a*e*(1-f);
        }else if(b==93)
        {
            e=7.44;
            d=a*e*(1-f);
        }else if(b=97)
        {
            e=7.93;
            d=a*e*(1-f);
        }
    }else if(c=='e')
    {
        f=0.03;
        if(b==90)
        {
            e=6.95;
            d=a*e*(1-f);
        }else if(b==93)
        {
            e=7.44;
            d=a*e*(1-f);
        }else if(b=97)
        {
            e=7.93;
            d=a*e*(1-f);
        }
    }
    printf("%.2f",d);
    return 0;
}

设计思路:

1.分别定义a,b,c,d,e,f,并使a,b,c可以被赋值或字母。

2.讨论当选择m优惠方式时,不同油的计价方式,即总油价a=型号油价b*折扣(1-f)*油量。

3.再用同样思路讨论选择e优惠时,油的计价方式。

调试过程:

 在调试过程中,我为了方便没有定义出折扣f的值,而是直接在计算中进行了赋值,导致只有题目给定的情况下数据正确,代码如下:

 但是分别对d,e,f定义之后,问题得到了解决。

流程图:

题目3:比较大小

实验代码:

#include<stdio.h>
int main ()
{
    int a,b,c;
    scanf("%d %d %d",&a,&b,&c);
    if(a<b)
    {
        if(c>b)
        {
            printf("%d->%d->%d",a,b,c);
        }else
        {
            if(a>c)
            {
                printf("%d->%d->%d",c,a,b);
            }else
            {
                printf("%d->%d->%d",a,c,b);
            }
        }
    }else if(a>b) 
    {
        if(a>c)
        {
            if(c>b)
            {
                printf("%d->%d->%d",b,c,a);
            }else
            {
                printf("%d->%d->%d",c,b,a);
            }
        }else
        {
            printf("%d->%d->%d",b,a,c);
        }
    }else if(a==b&&b==c)
    printf("%d->%d->%d",a,c,b);
    return 0;
}

设计思路:

1.分别定义a,b,c,并使他们可以被赋值。

2.讨论当a<b的条件下,b与c的大小,如果c>b则直接输出三者大小关系;如果c<b则再讨论a与c的关系。

3.同种思路下再讨论a>b的条件下的情况。

4.在最后讨论a=b=c的情况进行输出。

调试过程:

本题在调试过程中我觉得虽然繁琐,但是细致的进行讨论后,并没有出现问题。

流程图:

(在流程图中我并没有想出讨论a,b,c相等的情况,我会在下一周的学习中请教老师。)

题目4:简单的计算器

#include <stdio.h>
int main()
{
    int a,b,c;
    char d;
    scanf("%d %c %d",&a,&d,&b);
    switch(d)
    {
        case('+'):printf("%d",c = a+b);{break;}
        case('-'):printf("%d",c = a-b);{break;}
        case('*'):printf("%d",c = a*b);{break;}
        case('/'):printf("%d",c = a/b);{break;}
        case('%'):printf("%d",c = a%b);{break;}
        default:printf("ERROR");{break;}
    }
    
}

设计思路:

1.定义出a,b,c以及字符d,并使a,b,d可以被赋值。

2.讨论当d的字符为+,-,*,%,/时,c的计算方式。

3.在d输入的字符不在题目范围内,输出ERROR。

调试过程:

并没有遇到什么问题,我觉得这是一道不是很难的switch语句的题目。

流程图:

个人总结:在本周的学习中继续复习了if-else语句,同时学习了新的switch语句,我觉得switch语句我掌握的不是很好,所以在接下来的学习中我会继续努力跟紧老师,学习好这个我掌握的不好的地方。而且对于我来讲,这个switch语句就是难点,所以我会尽全力学习好这一部分的。对于老师的上课方式,我觉得我很喜欢,有学习新知识的时间,也有我们自己操作的时间,我觉得很棒,如果说非要有点小建议,我希望我们能有更多一点的操作时间,虽然说本来我们自己的操作时间已经相对很长了。

作业点评:

1.李锐同学的作业:http://www.cnblogs.com/572453251asd/p/7811205.html

2.金海东同学的作业:http://www.cnblogs.com/jhd1127/p/7811138.html

3.金海宽同学的作业:http://www.cnblogs.com/kimhae/p/7795597.html

时间表:

原文地址:https://www.cnblogs.com/jz19990201/p/7811442.html