C语言——第六周作业

题目

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

1.实验代码

#include <stdio.h>
int main()
{
    int speed,maxspeed;
    double x;
    scanf("%d %d",&speed,&maxspeed);
    x=(double)(speed-maxspeed)/(double)maxspeed*100;
    if(x<10)
        printf("OK");
    else if(x>=50)
        printf("Exceed %.0f%%. License Revoked",x);
    else
        printf("Exceed %.0f%%. Ticket 200",x);
    return 0;
}

2.设计思路

①算法

Begin

输入speed,maxspeed                     //分别表示实际速度和车道限速

计算x的值                                //x为实际速度超出车道限速的百分比的值

判断x值的大小,并输出不同结果 

end

②流程图

 

 

3.本题未遇到问题

4.本题PTA提交列表

 

题目二:计算油费

1.实验代码

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

 

2.设计思路

①算法

Begin

输入a,b,c                                //a代表加油量,b代表汽油品种,c代表服务类型

判断b的值,定义price的值                      //通过判断不同品种的汽油,定义不同的单价

判断c的值,定义discount的值                   //通过判断不同类型的服务,定义不同的折扣比例

计算money                          //利用money = a * price * (1 - discount)这一公式计算应付款

输出money的值

end

②流程图

 

 

3.本题未遇到问题

4.本题PTA提交列表

 

题目三:比较大小

1.实验代码

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

 

2.设计思路

①算法

Begin

输入a,b,c

判断a与b的值的大小,将较大的值赋给x,较小的值赋给z。                        //定义x为最大值,z为最小值,y为中间值

判断a、b中较大值与c的值的大小。若c大,将c赋给x。

否则,判断c是否小于a、b中较小值。若是,将c赋给z。

中间值y为三个数之和减去最大值与最小值。

输出z->y->x

end

②流程图

 

 

3.本题未遇到问题

4.本题PTA提交列表

 

题目四:两个数的简单计算器

1.实验代码

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

 

2.设计思路

①算法

Begin

输入 a c b;                         //a、b为输入的两个整数,c为运算符

判断c为何种符号

若合法,计算并输出a与b经过此种运算符运算后的结果

若不合法,输出ERROR

②流程图

 

 

3.本题起初并未按照作业要求使用switch语句,经过同学提醒修正。

初始if语句代码:

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

 

4.本题PTA提交列表

 

我的git地址:https://git.coding.net/dx200798/sixth.git

项目截图

 

个人总结

一、本周学习内容:

1.学习了while语句、do...while语句、for语句这三个循环语句,并学习了三种循环的互相嵌套。

2.学习了break语句和continue语句。

3.练习了IF语句和switch语句,提高了对语句应用的熟练度。

二、疑点难点:

对for语句还没有比较熟练掌握,还需要练习。

三、对目前老师上课形式并没有什么意见,无法提出意见。

 

互评和学习进度

互评链接

链接一:http://www.cnblogs.com/fengzx/p/7801506.html

链接二:http://www.cnblogs.com/lixiaojing/p/7798963.html

链接三:http://www.cnblogs.com/exo123/p/7811906.html

图表

 

 

posted on 2017-11-08 18:02  luuuuu  阅读(528)  评论(10编辑  收藏  举报