您的位置:首页 > 其它

第六周作业

2017-11-08 00:12 225 查看
题目7-1 高速公路超速处罚

1.实验代码

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


2.设计思路

(1)主要描述题目算法

第一步:我首先仔细读了三遍题, 此题分为三种情况①小于限速的%10不罚款②超速%10-%20罚款200

③超速50%吊销驾驶证

第二步:我运用上课学的if-else语句,将三种情况分别列出

if (超速小于%10)则输出Ok

else if (超速%10-%50)则输出Exceed z%.Ticket 200

else 则输出Exceed z%.Licence Revoked

第三步:在De-C++上编译检查是否有 错误

(2)流程图



3.本题调试过程中遇到的问题

错误提示截图



遇到问题

提交总是显示答案错误

解决办法

我又仔细读了一遍 题,发现公式写错了,按照题目公式改正

4.PTA提交列表



题目7-2计算油费

1.实验代码

#include <stdio.h>
int main()
{
double A,M;
int B;
char c;

scanf("%lf%d %c",&A,&B,&c);
if (c == 'm'){
switch(B){
case 90:M = A * 6.95 * 0.95;break;
case 93:M = A * 7.44 * 0.95;break;
case 97:M = A * 7.93 * 0.95;break;
}
printf("%.2f",M);
}
else if (c == 'e'){
switch(B){
case 90:M = A * 6.95 * 0.97;break;
case 93:M = A * 7.44 * 0.97;break;
case 97:M = A * 7.93 * 0.97;break;
}
printf("%.2f",M);
}
return 0;
}


2.设计思路

(1)主要描述题目算法

第一步:仔细审题

①把题分为两大类:c == 'm'还是c == 'e' ②每大类又分为三种小情况:90还是93或者是97

③按照题目中的公式套用到每种情况中。

第二步:考虑用学过的什么知识点,个人认为用switch语句比较好

将所有的情况列出

if (c == 'm'){
switch(B){
case 90:M = A * 6.95 * 0.95;break;
case 93:M = A * 7.44 * 0.95;break;
case 97:M = A * 7.93 * 0.95;break;
}

else if (c == 'e'){
switch(B){
case 90:M = A * 6.95 * 0.97;break;
case 93:M = A * 7.44 * 0.97;break;
case 97:M = A * 7.93 * 0.97;break;}
第三步:编译运行检查是否有误。
(2)流程图



3.本题调试过程中遇到的问题及解决办法
错误提示截图



遇到的问题
答案错误
解决办法
重新在自己的编译器编译发现自己把B 打成b
4.PTA提交列表



题目7-3比较大小


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



2.设计思路

(1)主要描述题目算法

第一步:阅读题目,三个数 比大小

①借助另外一个变量 t ②把三个数 两个一组分成三组③两个数之间比大小

第二步: 运用if-if-if语句 分为三种情况

1.if(a>b)
{t=a,a=b,b=t;}
2.if(a>c)
{t=a,a=c,c=t;}
3. if(b>c)
{t=b,b=c,c=t;}

第三步:将自己的想法打成代码,并编译运行

(2)流程图



3.本题调试过程中遇到的问题及解决办法

因为这道题牛老师亲自给我讲过,没有问题。

4.PTA提交列表



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

1.实验代码

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


2.设计思路

(1)主要描述题目算法

第一步:读题,要求设计一个计算器。

实现五种算法“+”,"-",”*“,"/","%"

第二步:运用switch语句,分五种情况:

①case '+':printf("%d",x+y);break;
② case '-':printf("%d",x-y);break;
③ case '*':printf("%d",x*y);break;
④case '/':printf("%d",x/y);break;
⑤case '%':printf("%d",x%y);break;
⑥default :printf("ERROR\n");break;

第三步:编译运行

(2)流程图



3.本题调试过程中 遇到的问题

错误提示截图



遇到问题

编译错误

解决方法:和题目7-2对比 发现switch后的()应该有c

4.pta提交列表



要求三

git地址

https://coding.net/u/zhangle1234567/p/PTA6/git/tree/master/

提交截图



要求四

个人总结

(1)本周学到的内容

1.复习if-else语句,新学习switch语句。

2.再进行大小比较的问题时,可引入中间变量

3.学会运用double/float数据

4.字符型数据(用char定义字符变量)

(2)难点

在遇到新题时不会运用switch 语句,比较大小时引入中间变量不容易想出

(3)意见

老师在黑板上写的东西后排看不见。

要求五

(1)点评同学作业链接

何宗彦http://www.cnblogs.com/hezongyan/p/7783360.html

徐敬淇http://www.cnblogs.com/SR1011/p/7801670.html

陈雨秋http://www.cnblogs.com/cyq66992152/p/7789995.html

(2)学习进度条





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: