要求一:
已完成PTA第六周作业所有题目
要求二:
题目7-1 高速公路超速处罚
1.实验代码
#include <stdio.h>
int main()
{
int c,x;
scanf("%d %d",&c,&x);
if(c<x*1.1)
{
printf("OK
");
}
else if(c>=1.1*x&&c<1.5*x)
{
float d=100*(c-x)/(float)x;
printf("Exceed %.0f%%. Ticket 200
",d);
}
else
{
float d=100*(c-x)/(float)x;
printf("Exceed %.0f%%. License Revoked
",d);
}
return 0;
}
2.设计思路
(1)算法
第一步:设置车速、限速的值c、x为整形变量;
第二步:输入c、x的值;
第三步:设置超出了限速百分之多少的值d为float形
第四步:写if循环语句
如果没超出本车道限速的10%,则输出OK,如果超出本车道限速的10%且小于50%,则输出"Exceed d% Ticket 200“,如果超出本车道限速的50%及以上,则输出“Exceed d%. License Revoked”。
注意:由于d为浮点形,在计算d的时候它的运算所用到的量也要换为浮点形的。
(2)流程图
3.本题调试过程碰到问题及解决办法
因为本题以前做过,所以在这次调试中并未遇到问题。
4.本题PTA提交列表
题目7-2 计算油费
1.实验代码
#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;
}
2.设计思路
(1)算法
第一步:设置加油量a,品种b为整形变量,服务类型c为字符变量,应付款额d为double形变量;
第二步:输入a,b,c的值(其中c的值为字符);
第三步:写if循环语句
如果97号汽油的时候,m服务等级时,应付款额为7.93a0.95,e服务等级时,应付款额d为7.93a0.97
如果93号汽油的时候,m服务等级时,应付款额为7.44a0.95,e服务等级时,应付款额d为7.44a0.97
如果90号汽油的时候,m服务等级时,应付款额为6.95a0.95,e服务等级时,应付款额d为6.95a0.97;
第四步:输出应付款额d的值。
注意:本题涉及到字符变量,在输入字符的时候要加‘单引号’。
(2)流程图
3.本题调试过程碰到问题及解决办法
(1)问题
由图得,本题是答案错误。
(2)解决办法:向老师询问得知,把float改为double即可。(因为对于本题float没有double精准,而且还有一个学长(一班的助教)建议我们尽量用double)
4.本题PTA提交列表
题目7-3 比较大小
1.实验代码
#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;
}
2.设计思路
(1)算法
第一步:设置a,b,c,d四个数为整形变量;
第二步:输入a,b,c;
第三步:写if语句
我的思路:本题为比较大小,那我就默认为a<b<c,然后如果真实的数值与默认的不相符,那就用老师讲的水杯法(就是a,b两杯水要交换,需要再找一个杯,然后在相互交换)进行交换;
第四步:输出结果。
(2)流程图
3.本题调试过程碰到问题及解决办法
(1)问题
从题目来看,我是部分正确。
(2)解决办法:我又仔细的看了我的代码,发现我在赋值的时候(给让a,b,c的值从小到大)赋值错了,改正即可。
4.本题PTA提交列表
题目7-4 两个数的简单计算器 (必须使用switch结构实现)
1.实验代码
#include <stdio.h>
int main()
{
int a,b;
char c;
scanf("%d %c %d", &a,&c,&b);
int d;
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
");
}
return 0;
}
2.设计思路
(1)算法
第一步:设置a,b,d为整形变量,c为字符变量;
第二步:写switch语句
确定c为那个可以变化的量,然后,当c取各种不同符号的时候,写应有运算步骤,如果题目给的字符写完了,就写defaul;
第三步:输出d。
注意:字符要用’单引号‘
(2)流程图
3.本题调试过程碰到问题及解决办法
(1)问题
由图得,本题为编译错误。
(2))解决办法:
编译错误就是编译的不正确,因此看看字母大小写,有无括号,中英文什么的有没有错误,最后发现落了一个括号,改正即可。
4.本题PTA提交列表
要求三:
(1)Git地址:https://git.coding.net/jsjyuyaosong/usth--work.c.git
(2)上传截图
要求四:
个人总结
(1)本周你学习了哪些内容?收获了什么?
答:我学习了switch语句,此语句也是进行选择判断的,但有时比if方便。
(2)本周所学内容中你觉得哪些是难点?有哪些知识点还不明白?
答:我觉得switch这个新学的语句就是重点,对于知识点的掌握还不太熟练,具体在框架不是很熟,其它的都好。
(3)你对目前老师的上课形式有什么意见或建议?
答:我认为老师讲的形式很好,并无意见。
要求五:
互评和学习进度
1、作业互评
(1)金海东:http://www.cnblogs.com/jhd1127/p/7811138.html
(2)李锐:http://www.cnblogs.com/572453251asd/p/7811205.html
(3)王姝雯:http://www.cnblogs.com/phsudie/p/7801346.html
2、学习进度