您的位置:首页 > 其它

第六周作业

2017-11-06 12:03 330 查看
要求二

[b]题目7-1 高速公路超速处罚[/b]

1.实验代码

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


2, 设计思路

a,读懂题目,定义两个整型变量车速x,限速y,和一个浮点型变量超速百分比z;

b,根据题意列出计算公式:超速百分比=(车速-限速)*100/限速;

c,由于题目存在判断,故用if else结构,即if (z<10),输出ok;else if(z<50),输出Exceed %Z. Ticket 200;else,输出Exceed %Z. License Revoked。

3.程序框图



4.遇到的问题及解决方法

问题截图



问题是输出的结果并不是题目要求的超速百分比,即无法输出百分数,

解决方法:先自己调试发现并没有找到问题,然后自上网查询,与网上的答案对比后,明白想要输出百分数需这样写:Exceed %.0f%%且求百分比的计算公式也可先用(车速-限速)*100/限速,得到的值就是所占的百分比

5.运行结果图



6.提交列表


编译错误的原因已在第四条中提到。

[b]题目7-2 计算油费[/b]

1.实验代码

#include <stdio.h>

int main()

{
int a,b;
double x;
char c;
scanf("%d %d %c",&a,&b,&c);
if(c=='e')
{
if(b==90)
{
x=a*6.95*0.97;
printf("%.2f",d);
}
else if(b==93)
{
x=a*7.44*0.97;
printf("%.2f",d);
}
else if(b==97)
{
x=a*7.93*0.97;
printf("%.2f",d);
}

}
else if(c=='m')
{
if(b==90)
{
x=a*6.95*0.95;
printf("%.2f",d);
}
else if(b==93)
{
x=a*7.44*0.95;
printf("%.2f",d);
}
else if(b==97)
{
x=a*7.93*0.95;
printf("%.2f",d);
}

}
return 0;

}


  

2, 设计思路

a,读懂题目,定义两个整型变量加油量a,汽油品种b,一个字符型变量c(m-自助,e-协助),和一个浮点型变量应付款额x;

b,根据题意,列出各自变量范围内的计算公式,即当服务类型是e时,b=90,费用x=a*6.95*0.97;b=93,费用x=a*7.44*0.97;b=97,费用x=a*7.93*0.97.

当服务类型是m时,b=90,费用x=a*6.95*0.95;b=93,费用x=a*7.44*0.95;b=97,费用x=a*7.93*0.95;

c,根据输入的数值确定范围,并进行相应的计算,最后输出结果。

3.程序框图



4.遇到的问题及解决方法

遇到的问题截图



遇到的问题是if中的条件出现错误;

解决方法:讲英文的错误提示翻译成汉语,并回看老师上课讲过的关于字符型变量的内容,知道了字符型变量需要将其用单引号括住。

5.运行结果图



6.提交列表


编译错误是由于字符型变量没有用单引号括住,

题目7-3 比较大小

1.实验代码

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


2.设计思路

a,理解题意,需要输入三个整数,故定义三个整型变量a,b,c,并用到scanf函数;

b,现将三个变量两两进行比较,并写出相应条件下的公式:if(b<a) a+=b; b = a-b; a = a-b; if(c<b) a+=b;c=b-c;b=b-c; if(b<a) a+=b;b = a-b;a = a-b;

c,根据输入的数值根据条件依次进行比较,最终输出比较结果。

3.程序框图



4.遇到的问题及解决方法

这道题目老师上课讲过与之十分类似的,所以没有问题。

5.运行结果图



6.提交列表


错误原因是中途切换了输入法。

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

1.实验代码

#include <stdio.h>
int main()
{
int a,b;
char operate;
scanf("%d %c %d",&a,&operate,&b);
switch(operate){

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.设计思路

a,理解题目,由于此题有五种运算符可以选择,属于多分支选择,故用switch语句;

b,根据题意;定义两个整型变量a,b,和一个字符型变量operate;

c,根据条件写出printf中的内容,例如:case '+': printf("%d",a+b)。

3.程序框图



4.遇到的问题及解决方法

遇到问题截图:



遇到的问题是编译错误,无法运行。

解决方法:自己看书,看老师发到群里的课件,发现switch后的括号中是有内容的,即括号中应填上operate。

截图:



5.运行结果图



6.提交列表


错因:switch后的括号中没有内容。

要求三

Git地址:https://git.coding.net/Hunjunxian/zuoye.git

上传文件截图:



要求四

个人总结:

1.进行条件较少的判断时,用if或if -else if结构,进行多条件的判断时则用switch语句;switch语句可使程序大大简化。

2.再进行大小比较的问题时,可引入中间变量,使程序简洁明了。

3.强制性的double/float,在有些变量未设定变量类型时,可在语句前加(double/float)进行强制定义,保证程序顺利运行。

4.难点是引入中间变量,将两个变量进行交换,对于一题多解的情况无法快速的选出最优解法。

5.不明白的知识点暂时没有,就是switch语句使用不是很熟练。

6.本次作业中出现的问题都是一些基本的,只是在编程时容易忽略,下次完成作业一定细心认真,且课后也会对基础知识加以巩固。

7.建议:希望以后的作业可以在周三之前布置,在周末交,这样就有充足的时间去写,不会像这次的作业一样,完成的特别匆忙,存在的瑕疵也比较多。以上就是我的建议,希望老师可以采纳。

要求五

我评价的博客:

何宗彦:http://www.cnblogs.com/hezongyan/

王佳乐:http://www.cnblogs.com/wjl1124/

透光玻璃:http://www.cnblogs.com/boke2017boke/

学习进度条:

时间代码行数时间1博客字数时间2知识点
2017.11.061224.5小时45045分钟if else结构和switch语句
折线图:

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