您的位置:首页 > 其它

第六周作业

2017-11-07 22:18 260 查看

要求二

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

1,实验代码

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

2,设计思路

(1)题目算法

第一步:理解题意,定义两个变量c,s和一个浮点型变量x,因为x为百分数,所以要用double。

第二步:根据题意列出计算公式:超速百分比=(车速-限速)*100/限速。

第三步:用if else语句输出三种结果。

(2)流程图



3,本题调试过程遇到问问题及解决方法

(1)错误截图



(2)遇到问题

本题真是伤透了脑筋,刚开始读完题不知道怎么列计算公式,后来反复读题问同学知道了,但是没按照题目要求顺序输出像:先输出正常行驶,再应处罚款,最后吊销驾照。导致提交错误。(通过本题了解到想要输出一个%号,就必须用%%,因为c语言中%是个特定的字符将会和他后面的一个字符组成一个输出形式)

4,PTA提交列表



题目7-2计算油费

1,实验代码

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

}

2,设计思路

(1)题目算法

第一步:首先读懂题意,有两种服务类型和三种型号汽油,两种折扣形式,共有六种情况。

第二步:用switch语句进行讨论,用int定义整数a,b,char定义字符c,定义浮点数y。

第三步:用if区分两种服务类型,每种服务类型的三种油号类型用switch语句输出。

(2)流程图



3,本题调试过程遇到问题及解决方法

(1)错误截图



(2)遇到问题

刚开始接触switch语句还有点不熟练,总出现错误,在服务类型为协助服务类型时输入的三种型号被我误打成为一种"90"号型号,所以导致提交错误。

4,PTA提交列表



题目7-3比较大小

1,实验代码

#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做替换。

第二步:用int定义a,b,c,t。

第三步:比较a,b,c的大小,当a>b时,让t=a,a=b,b=t实现大小替换,依次进行替换。

第四步:按照题目要求用->连接,按照由小到大的顺序输出。

(2)流程图



3,遇到问题及解决方法

(1)错误截图



(2)遇到问题

本题是老师课上讲过的题,但是仍就出错了,将t赋值给a了,可是t并没有值,导致错误,应该是t=a。

4,PTA提交列表



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

1,实验代码

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

2,设计思路

(1)题目算法

第一步:这道题用到switch语句,要求计算两个数的加减乘除和求余五种情况,还有在输入非法符号时输出“ERROR”共有六种情况。

第二步:因为两个整数,所以用int定义函数number1,number2。定义一个运算符号用char定义函数op。

第三步:输出两个数的加减乘除求余运算方法和非法符号的结果。

(2)流程图



3,遇到问题及解决方法

(1)错误截图



(2)遇到问题

由于看到题目要求在除法和求余时的分母非零,所以就在switch语句输出时定义了number!=0结果导致错误,后来问同学知道只需在运行时输入非零的数就好。

4,PTA提交列表



要求三

git地址

https://git.coding.net/MAYUXIN/mayuxin.git

截图:



(1)学习内容及收获:

本周学习到了一个新的 switch 语句,switch和case还有break共同组建成一种分支结构语句,还有对应流程图的画法。

当使用 if 的嵌套语句时要进行缩进。

while与do while的循环解构和对应的流程图画法。

比较几个数大小时,要交换两个变量的值,并再找一个变量做替换。

(2)内容难点及问题:

感觉刚开始接触switch语句,还有点不好理解。比较大小时,交换两个变量的值还有点蒙,但是经过问同学和自己琢磨现在好点了。

(3)上课形式及建议:

对于已经上课好几周的我习惯了目前的上课形式,建议老师在讲完新的内容时能多给我们一点写程序的时间,上课的速度对我来说有点快,但是可能是进度的需要,希望能多说一下较难的知识点,只是一个建议而已。

要求五

(1)被点评同学作业的链接

孙娜:http://www.cnblogs.com/sun-na-/p/7788913.html

孙佳钰:http://www.cnblogs.com/woshisun/p/7795878.html

孙美玲:http://www.cnblogs.com/sunmeiling/p/7795932.html

(2)表格及折线图



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