第六周作业

要求二

题目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语句

折线图:

 

posted @ 2017-11-06 12:03  句号?  阅读(163)  评论(6编辑  收藏  举报