首页 > 技术文章 > 第六周作业

blueblog6 2017-11-05 20:24 原文

1,题目一:高速公路超速处罚
1.实验代码

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

2.设计思路
(1)主要描述题目算法
第一步,写好程序基本框架。
第二步,阅读题目估计本题有三种情况,车速小于限速的10%,车速大于限速的10%小于限速的50%,车速大于限速的50%。
第三步,定义两个整数车速和限速,和一个浮点数超速的百分之多少。
第四步,%.0f%%的意思是:%.0f是输出控制格式,表示输出一个double型数据,小数部分长度为0,即只有整数部分。不足左面空格补齐,即右对齐。而%%则输出来就是%。
第五步,结束。
(2)流程图

3.本题调试过程碰到问题及解决办法
一开始我是按下图做的

但是就是有错误,我花了大量时间也没找出为什么。然后我就求助互联网了,发现少了一个0.5;然后我加了0.5;如下图所示,对了。

在和同学交流中,我发现了还有另一种方法。如下图所示。

4.pta截图

1,题目二:计算油费
1.实验代码

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

2.设计思路
(1)主要描述题目算法
第一步,写好程序基本框架
第二步,想到if,else if,else结构。
第三步,分析题目内容可能有3个大种判断情况,有6个小种判断情况。
第四步,输出不用情况的结果。
第五步,结束。
(2)流程图

3.本题调试过程碰到问题及解决办法
没问题
4.pta截图

5,在经过和其他同学交流后,我又尝试了利用switch语句来编译,及流程图如下图所示:

1,题目三:比较大小
1.实验代码

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

2.设计思路
(1)主要描述题目算法
第一步,写好程序基本框架。
第二步,引入中间变量t。
第三步,依次比较a,b,c的大小。a>b时,让t=a,a=b,b=t实现大小替换。a>c和b>c时也采用类似的方法进行替换。
第四步,按题目意思->方式输从小到大排列。
第五步,结束。
(2)流程图

3.本题调试过程碰到问题及解决办法
简单题,没问题
4.pta截图

1,题目四: 两个数的简单计算器
1.实验代码

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

2.设计思路
(1)主要描述题目算法
第一步,写好程序基本框架。
第二步,想到if,else if,else结构。
第三步,分析题目内容可能有5种判断情况。
第四步,将+,-。*。/。%和error五种情况进行编程,然后输出结果。
第五步,结束
(2)流程图

3.本题调试过程碰到问题及解决办法
简单题,没问题
4.pta截图

5方法2,利用switch语句来编译

个人总结
1,学习了while,for,do while语句。
2,开始用word做流程图简直慢的要命,现在在https://www.processon.com上作图,特别快。
3,就是第一题要加0.5的还没懂。
4,复习了switch语句,了解了switch可以简化程序,加快程序运行速度。

git地址
https://git.coding.net/AI1452349541/H.K.2.1.git
git截图

点评的其他同学
陈雨秋http://www.cnblogs.com/cyq66992152/p/7789995.html
林梦http://www.cnblogs.com/lin2580/p/7798108.html
郭志康http://www.cnblogs.com/gzk08-20/p/7801265.html

本周学习进程


建议:
1,写博客太费时了,建议减少些博客要求,多出些代码编程题。
2,最近学的switch语句,循环语句练得太少,不过瘾,建议多出一些。
3,最近学的编程太枯燥无味了,建议时不时插入一些有趣的简单的编程,如编程简单游戏,特殊图案也行..........

推荐阅读