要求一(20经验值)

要求二(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.输出判断情况。
流程图

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

题目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.每种按照每种情况进行计算,得出结果,保留两位。
流程图

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

题目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.按顺序重新赋值,最后输出结果。
流程图

本题调试过程碰到问题及解决办法
这道题在做的时候遇见了很多问题,首先因为大量的使用even if语句,无法输出结果。如图

经过几次删改,勉强可以输出,却是这样的

输出多个结果,还是错的,后来在同学的提醒下,对even if()括号内的内容进行了修改,加入了&&使得条件更加清楚。
同时在输出的时候也做了改变,先用字母代换,最后统一输出,避免了一次输出多个结果。
本题PTA提交列表

题目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进行分情况。
    流程图

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

要求三
GIT:https://git.coding.net/MikeJackYao/The-first.git

要求四(共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、

posted on 2017-11-12 22:38  姚ysy  阅读(302)  评论(4编辑  收藏  举报