第一次作业
一. 分支结构中题目7-10 出租车计价
1.实验代码
#include <stdio.h> int main() { int time;//定义一个整数值time double fare,distance;//定义两个浮点数 scanf("%lf%d", &distance, &time);//输入距离和时间 if(time >= 5) fare = (time / 5) * 2;//营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费) if(distance <= 3) { fare = 10 + fare;//起步里程为3公里,起步费10元,再加上临时停车的费用
} else if(distance <= 10) { fare = 10 + (distance - 3) * 2 + fare;//超起步里程后10公里内,每公里2元,再加上临时停车的费用
} else if(distance > 10){ fare = 10 + 7 * 2 + (distance - 10) * 3 + fare;//超过10公里以上的部分加收50%的回空补贴费,即每公里3元,同样加上临时停车的费用
} printf("%d\n", (int)(fare + 0.5));//输出计算结果(结果四舍五入) return 0; }
2.设计思路
(1)文字描述
第一步:先定义时间,金钱和距离
第二步:营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)(fare = (time / 5) * 2)
第三步:起步里程为3公里,起步费10元,再加上临时停车的费用(fare = 10 + fare)
第四步:超起步里程后10公里内,每公里2元,再加上临时停车的费用(fare = 10 + (distance - 3) * 2 + fare)
第五步:超过10公里以上的部分加收50%的回空补贴费,即每公里3元,同样加上临时停车的费用(fare = 10 + 7 * 2 + (distance - 10) * 3 + fare)
第六步:最后输出计算结果(结果四舍五入)(fare + 0.5)
(2)流程图
3.错误提示
(1)最开始没有每一步都加上临时停车的费用
(2)不知道怎么四舍五入
4.解决方法
(1)在最前计算临时停车的费用,并在以后的每次计算中都加上临时停车的费用
(2)百度了一下,在所得结果上加上0.5就会在输出的整数上达到四舍五入的结果
二. 循环1中题目7-3 统计素数并求和
1.实验代码
#include<stdio.h> int main() int prime(int p){ int isPrime=1 , i;//定义当isPrime=0为素数 if(p<2){ isPrime = 0;//当定义的数小于2时为素数 } else{ for(i=2; i<=(int)sqrt(p); i++){//for循环 if(p%i == 0){ isPrime = 0;//取余等于0,为素数 break;//结束当前循环 } } } return isPrime; } { int M, N, i, count=0, sum=0;//定义区间的两个数,for循环的i和所要输出的两个结果 scanf("%d %d",&M,&N);//输入区间两边的数 for(i=M;i<=N;i++){//for循环定义区间 if(prime(i)){ count++;//count+1 sum += i;//计算sum } }printf("%d %d",count,sum);输出结果 return 0; }
2.设计思路
(1)文字描述
第一步:先定义一个素数(假设定义当isPrime=0为素数)
第二步:所以当定义的数小于2时为素数
第三步:在for循环中取余等于0则为素数并结束当前循环
if(p%i == 0){ isPrime = 0;//取余等于0,为素数 break;//结束当前循环 }
第四步:然后定义区间的两个数,for循环的i和所要输出的两个结果
第五步:在for循环中定义区间并求得sum(sum += i)
第六步:最后输出所求结果
(2)流程图
3.错误提示
4.解决方法
(1)定义isPrime等于0时为素数,从而计算素数的和还有平均数
(2)考虑isPrime不等于0时的情况
三. 循环2中题目7-5 最佳情侣身高差
1.实验代码
#include<stdio.h> int main() { int n ; char x; double height; scanf("%d",&n);//输入一个整数 int i; for(i=0;i<n;i++){ scanf(" %c %lf",&x,&height);//在for循环中输入性别和体重 if(x == 'M')//若为男性 printf("%.2f\n",height / 1.09);//输出计算所得的女性身高 if(x == 'F')//若为女性 printf("%.2f\n",height * 1.09);//输出计算所得的男性身高 } return 0; }
2.设计思路
(1)文字描述
第一步:分别定义一个可输入字母的类型和一个可输入数字的类型
第二步:在for循环中分别输入性别和体重
第三步:输入若为男性则根据(height / 1.09)输出计算所得的最佳女性身高
第四步:输入若为女性则根据(height * 1.09)输出计算所得的最佳男性身高
(2)流程图
3.错误提示
4.解决方法
查阅了部分资料,将for循环中定义性别的字母替换为%c(char对应着%c)
四.总结
1.总结
a.所学内容
(1)有关分支结构的一些必要步骤
(2)有关for,while循环的一些知识
b.遇到问题
(1)如何定义素数
(2)如何四舍五入
(3)怎么定义字母
c.解决方法
(1)计算每一步都需要考虑是否加全
(2)在所得结果上加上0.5就会在输出的整数上达到四舍五入的结果
(3)计算与素数有关的问题时要定义isPrime等于何值时时为素数,从而计算素数的和还有平均数
(4)要考虑isPrime不等于0时的情况
(5)int 是整形数据,int a = 3;这里int 是类型, a 是整形变量,3是赋值;char s = 'A'; char是字符类型,s是字符型变量,A是赋值给变量s;
2.点评
3.表格
周数 | 此周代码行数/行 | 码代码所用时长/h | 所写博客字数/字 | 写博客所用时长/h | 所涉及的知识点 |
第9周 | 2800 | 13 | 0 | 0 | 有关分支结构的知识 |
第10周 | 3200 | 15 | 0 | 0 | 有关四则运算的知识 |
第11周 | 3500 | 15.5 | 0 | 0 | 有关while,for循环的知识 |
第12周 | 3500 | 15.5 | 1000 | 5 | 加深对循环的知识 |
折线图