您的位置:首页 > 其它

第六周作业

2017-11-07 09:22 239 查看
要求二:

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

1,实验代码

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

2,,设计思路

<1>第一步:要考虑c的定义,即超过限速的百分比,用速度减去限速再除以限速。

第二步:会有出现小数的情况,要用到四舍五入。

第三步:多种情况,熟知的if else语句,注意限速中c乘以了100.0,故if中的判断为<10,<50。

<2>流程图:


3,本题调试过程中遇到的问题和解决方法。

错误截图:


遇到的问题:写完后发现不了错误,四舍五入也用到了,后两个要显示百分比的一直是百分之零。

解决方法:请教了同学,才发现是输出语句printf没有定义完全,在“\n”后少写了c。

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==93)
{if (c=='m'){
d=7.44*(0.95)*a;
printf("%.2f\n",d);}
else {
d=7.44*(0.97)*a;
printf("%.2f\n",d);}}
else if (b==90)
{if (c=='m')
{d=6.95*(0.95)*a;
printf("%.2f\n",d);}
else{
d=6.95*(0.97)*a;
printf("%.2f\n",d);}}
else{
if(c=='m')
{d=7.93*(0.95)*a;
printf("%.2f\n",d);}
else{
d=7.93*(0.97)*a;
printf("%.2f\n",d);}}
return 0;

}

2,设计思路

<1>第一步:题目涉及到字符问题,可以用char定义,并且在下面的if else语句中用单引号定义字符。

第二步:又是六种情况,即每种油有两种折扣方式,3*2=6。

第三步:在每个if ,else if,else中又有两个分类,即又要用到if,else。虽说麻烦不少,但是一步步写,还是可以写对的。

<2>流程图:


3,本题调试过程中遇到的问题和解决方法。

错误截图:


遇到的问题:我也不知道是怎么不对,感觉是定义变量的时候出了问题,无法解决,就去请教了同学。

解决方法:题目意思没理解好,以为是三个整数,却没发现有一个字符,题目中保留两位小数的,用到double型没错。直到解决了问题后,才写了设计思路。

pta提交列表:


题目7-3 比较大小

1,实验代码

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

}

2,设计思路

<1>第一步:三个数比较大小,需定义第四个变量,用来置换大小数。

第二步:分(a>b),(a>c),(b>c)三种情况进行数的大小置换,保证从小到大是a,b,c。

<2>流程图:


3,本题调试过程中遇到的问题和解决方法。

错误截图:本题题目上课时讲过,基本没有错误,无截图。

只有一些不仔细的错误,比如说有一个;没打,导致了部分正确。

pta截图:


题目7-4 两个数的简单计算器 (必须使用switch结构实现)

1,实验代码

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

2,设计思路

<1>第一步:又有字符的定义,用到char,在scanf中用%c定义。

第二步:必须是switch的语句,有固定的格式,套用就可以了,case加运算符,结尾处用到break。不符合题意的用default进行概括,输出ERROR。

<2>流程图:


3,本题调试过程中遇到的问题和解决方法。

错误截图:


遇到的问题:无论怎么写,输出的结果全是ERROR。而且程序再编译时没有提示错误。

解决方法:字符定义的问题,没有注意到scanf中的是%c,改过来就好了。

pta截图:


要求三:

coding.net截图:


git 地址:https://git.coding.net/WP2017024114/test.git

要求四:

个人总结

本周对if else的语句的编写有了更熟练的掌握,知道了switch的语句编写,字符型数据用char定义,在scanf中用%c定义数据。对C语言这门课程有了一点兴趣,喜欢那种一个程序再自己的手中编译运行,然后输入数字,执行成功的感觉。

难点就是感觉一个陌生的程序第一次写得时候永远是错的,只有多练习的即便才慢慢发现程序究竟是怎么运行的,才会写对。

上课形式没有什么意见,边教边练,是很好的教学方式了。

要求五:

点评的作业:

赵升旗:http://www.cnblogs.com/boke2017boke/p/7788452.html

王佳乐:http://www.cnblogs.com/wjl1124/p/7783547.html

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

表格和折线图:



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