第六次作业

要求一(20经验值)

1238324-20171112093721356-786270162.png

要求二(60经验值)
题目7-1 高速公路超速处罚

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

设计思路
1.先设出两个变量分别代表车速与限速。
2.然后再有if语句判断是否超速,并且超速程度的大小。
3.输出判断情况。
流程图
1238324-20171112120909122-1846410094.png

本题调试过程碰到问题及解决办法
本题为上周做过的题,思路清晰,没有问题。
本题PTA提交列表
1238324-20171112210820263-738799931.png

题目7-2 计算油费

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

设计思路
1.有加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助)三个变量。
2.根据汽油品种分为3种情况,再在每种情况中分为自助还是协助两种类型。
3.每种按照每种情况进行计算,得出结果,保留两位。
流程图
1238324-20171112145621544-1334463153.png

本题调试过程碰到问题及解决办法
再做此题之前看到了C语言群里同学们的讨论,所以我做的时候直接使用了double,一次做对,没有问题。
本题PTA提交列表
1238324-20171112210937263-13885430.png

题目7-3 比较大小

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

设计思路
1.三个变量,比较大小,可以分出六种情况,通过错误提示可以知道,还有第七种,就是都相等。
2.使用if和even if将所有语句列出。
3.按顺序重新赋值,最后输出结果。
流程图
1238324-20171112210043044-805815043.png

本题调试过程碰到问题及解决办法
这道题在做的时候遇见了很多问题,首先因为大量的使用even if语句,无法输出结果。如图
1238324-20171112210308450-1793103988.png
经过几次删改,勉强可以输出,却是这样的
1238324-20171112210350606-1995665736.png
输出多个结果,还是错的,后来在同学的提醒下,对even if()括号内的内容进行了修改,加入了&&使得条件更加清楚。
同时在输出的时候也做了改变,先用字母代换,最后统一输出,避免了一次输出多个结果。
本题PTA提交列表
1238324-20171112211030169-1038279381.png

题目7-4 两个数的简单计算器 (必须使用switch结构实现)
实验代码

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

设计思路

  1. 一共是五种符号计算,所以有五种情况,使用switch更为方便。
    2.用char插入符号,然后用switch进行分情况。
    流程图
    1238324-20171112215733684-1625770539.png

本题调试过程碰到问题及解决办法
这道题主要问题是在switch语句应用不熟练上面,经常忘写break。同时在char上使用也犯了糊涂,最后在百度上查了符号的使用与数学运算,添加了#include(math.h)和getchar()最后成功。
本题PTA提交列表
1238324-20171112220155856-685612700.png

要求三
GIT:https://git.coding.net/MikeJackYao/The-first.git
1238324-20171112221442559-1857237382.png

要求四(共7经验值)

个人总结
(1)主要学了if,switch,for这些语句,同时开了循环这个新语句。
(2)难点是for中所需条件,还有循环语句,新内容,不知道多会儿循环结束输出结果。
(3)希望老师可以多带我们复习下上节课的内容。

要求五(共8经验值)

互评和学习进度
1、徐铭博:http://www.cnblogs.com/xmb1547828350/
于耀松:http://www.cnblogs.com/jsjyys/p/7818602.html
杨志群:http://www.cnblogs.com/12138-/p/7823088.html

2、1238324-20171112223741966-1721199191.png
1238324-20171112223752575-1910284526.png

转载于:https://www.cnblogs.com/yaoshunyux/p/7821348.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值