第一次作业
一. 分支结构中题目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 | 加深对循环的知识 |
折线图

浙公网安备 33010602011771号