一. 分支結構中題目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 | 加深對循環的知識 |
折線圖