zoukankan      html  css  js  c++  java
  • 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

    图表

     

  • 相关阅读:
    转:算法的空间复杂度
    转:算法的最坏情况与平均情况 复杂度就要看最坏情况
    转:一些字符串函数的实现
    转:C语言字符串操作函数
    搜狐在线笔试 时间复杂度O(n)实现数组A[n]中所有元素循环左移k个位置
    搜狐笔试 最大连续递增子段和 关键词连续递增
    转:最小区间:k个有序的数组,找到最小区间使k个数组中每个数组至少有一个数在区间中
    转:strcpy实现的考察要点
    转:strcat与strcpy与strcmp与strlen
    转:多篇文章中的设计模式-------策略模式
  • 原文地址:https://www.cnblogs.com/dx2017/p/7794801.html
Copyright © 2011-2022 走看看