您的位置:首页 > 其它

第六周作业

2017-11-11 16:45 120 查看

要求一:

已完成PTA第六周作业所有题目



要求二:

题目7-1 高速公路超速处罚

1.实验代码

#include <stdio.h>
int main()
{
int c,x;
scanf("%d %d",&c,&x);
if(c<x*1.1)
{
printf("OK\n");
}
else if(c>=1.1*x&&c<1.5*x)
{
float d=100*(c-x)/(float)x;
printf("Exceed %.0f%%. Ticket 200\n",d);
}
else
{
float d=100*(c-x)/(float)x;
printf("Exceed %.0f%%. License Revoked\n",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\n", d);  break;
}
case '+':
{
d=a+b;
printf ("%d\n",d);  break;
}
case '*':
{
d=a*b;
printf ("%d\n",d);  break;
}
case '/':
{
d=a/b;
printf ("%d\n",d);  break;
}
case '%':
{
d=a%b;
printf ("%d\n",d); break;
}

default:printf("ERROR\n");
}
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、学习进度



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