zoukankan      html  css  js  c++  java
  • 第六周作业

    要求二

    题目7-1 高速公路超速处罚

    1.实验代码

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

    2, 设计思路

    a,读懂题目,定义两个整型变量车速x,限速y,和一个浮点型变量超速百分比z;

    b,根据题意列出计算公式:超速百分比=(车速-限速)*100/限速;

    c,由于题目存在判断,故用if else结构,即if (z<10),输出ok;else if(z<50),输出Exceed %Z. Ticket 200;else,输出Exceed %Z. License Revoked。

    3.程序框图

     

    4.遇到的问题及解决方法

    问题截图

    问题是输出的结果并不是题目要求的超速百分比,即无法输出百分数,

    解决方法:先自己调试发现并没有找到问题,然后自上网查询,与网上的答案对比后,明白想要输出百分数需这样写:Exceed %.0f%%且求百分比的计算公式也可先用(车速-限速)*100/限速,得到的值就是所占的百分比

    5.运行结果图

    6.提交列表

    编译错误的原因已在第四条中提到。

    题目7-2 计算油费

    1.实验代码

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

      

    2, 设计思路

    a,读懂题目,定义两个整型变量加油量a,汽油品种b,一个字符型变量c(m-自助,e-协助),和一个浮点型变量应付款额x;

    b,根据题意,列出各自变量范围内的计算公式,即当服务类型是e时,b=90,费用x=a*6.95*0.97;b=93,费用x=a*7.44*0.97;b=97,费用x=a*7.93*0.97.  

       当服务类型是m时,b=90,费用x=a*6.95*0.95;b=93,费用x=a*7.44*0.95;b=97,费用x=a*7.93*0.95;

    c,根据输入的数值确定范围,并进行相应的计算,最后输出结果。

    3.程序框图

    4.遇到的问题及解决方法

    遇到的问题截图

    遇到的问题是if中的条件出现错误;

    解决方法:讲英文的错误提示翻译成汉语,并回看老师上课讲过的关于字符型变量的内容,知道了字符型变量需要将其用单引号括住。

    5.运行结果图

    6.提交列表

    编译错误是由于字符型变量没有用单引号括住,

    题目7-3 比较大小

    1.实验代码

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

    2.设计思路

    a,理解题意,需要输入三个整数,故定义三个整型变量a,b,c,并用到scanf函数;

    b,现将三个变量两两进行比较,并写出相应条件下的公式:if(b<a) a+=b;  b = a-b;  a = a-b;  if(c<b)    a+=b;c=b-c;b=b-c;  if(b<a)  a+=b;b = a-b;a = a-b;

    c,根据输入的数值根据条件依次进行比较,最终输出比较结果。

    3.程序框图

    4.遇到的问题及解决方法

    这道题目老师上课讲过与之十分类似的,所以没有问题。

    5.运行结果图

    6.提交列表

    错误原因是中途切换了输入法。

    题目7-4 两个数的简单计算器

    1.实验代码

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

    2.设计思路

    a,理解题目,由于此题有五种运算符可以选择,属于多分支选择,故用switch语句;

    b,根据题意;定义两个整型变量a,b,和一个字符型变量operate;

    c,根据条件写出printf中的内容,例如:case '+': printf("%d",a+b)。        

    3.程序框图

    4.遇到的问题及解决方法

    遇到问题截图:

    遇到的问题是编译错误,无法运行。

    解决方法:自己看书,看老师发到群里的课件,发现switch后的括号中是有内容的,即括号中应填上operate。

    截图:

    5.运行结果图

    6.提交列表

    错因:switch后的括号中没有内容。

    要求三

    Git地址:https://git.coding.net/Hunjunxian/zuoye.git

    上传文件截图:

    要求四

    个人总结:

    1.进行条件较少的判断时,用if或if -else if结构,进行多条件的判断时则用switch语句;switch语句可使程序大大简化。

    2.再进行大小比较的问题时,可引入中间变量,使程序简洁明了。

    3.强制性的double/float,在有些变量未设定变量类型时,可在语句前加(double/float)进行强制定义,保证程序顺利运行。

    4.难点是引入中间变量,将两个变量进行交换,对于一题多解的情况无法快速的选出最优解法。

    5.不明白的知识点暂时没有,就是switch语句使用不是很熟练。

    6.本次作业中出现的问题都是一些基本的,只是在编程时容易忽略,下次完成作业一定细心认真,且课后也会对基础知识加以巩固。

    7.建议:希望以后的作业可以在周三之前布置,在周末交,这样就有充足的时间去写,不会像这次的作业一样,完成的特别匆忙,存在的瑕疵也比较多。以上就是我的建议,希望老师可以采纳。

    要求五

    我评价的博客:

     何宗彦:http://www.cnblogs.com/hezongyan/

    王佳乐:http://www.cnblogs.com/wjl1124/

    透光玻璃:http://www.cnblogs.com/boke2017boke/

    学习进度条:

    时间 代码行数 时间1 博客字数 时间2 知识点
    2017.11.06 122 4.5小时 450 45分钟 if else结构和switch语句

    折线图:

  • 相关阅读:
    CPU die
    删除binlog的方法
    mysql中bigint、int、mediumint、smallint 和 tinyint的取值范围
    Javascript中的Keycode值列表
    php5.2转向 PHP 5.3 的 PHP 开发
    linux 下查看系统内存使用情况的方法
    Kyoto Cabinet(DBM) + Kyoto Tycoon(网络层)
    window 7 下一台cp 两个mysql 配置主从
    php 序列化(serialize)格式详解
    Linux下ntpdate时间同步
  • 原文地址:https://www.cnblogs.com/123456hjx/p/7792471.html
Copyright © 2011-2022 走看看