一、PTA
已完成。
二、博客作業
分支結構中題目7-7計算火車運行時間
1.實驗代碼
#include<stdio.h>
int main()
{
int h, m, depart, arrive;
scanf("%d%d",&depart, &arrive);
h = arrive/100 - depart/100;
m = arrive%100 - depart%100;
if (m < 0)
{
m = 60 + m;
h = h - 1;
}
printf("%02d:%02d\n",h, m);
return 0;
}
2.設計思路
(1)算法
第一步:審題知其輸入格式為四位整數,輸出格式為“hh:mm”,其中“hh”為兩位小時數,“mm”為兩位分鍾數。
第二步:設置自變量出發時間(depart),到達時間(arrive),和因變量整個旅途所用時間小時(h),分鍾(m)。
第三步:利用算式“arrive/100 - depart/100”求出旅途所用時間的小時數(h),利用算式“arrive%100 - depart%100”求出旅途所用時間的分鍾數(m)。
第四步:最后利用“printf(“%02d:%02d\n”,h, m);”輸出結果。
注意:1.當m<0,m=60+m時,h=h-1。
2.輸出時為“%02d”而不是“%d”,“02”用於補位。
(2)流程圖
3.本題調試過程碰到問題及解決辦法
(1)錯誤截圖:
(2)錯誤改正:
出現混淆錯誤,將“m = arrive&100 - depart&100;”中的“&”改為“%”。
循環1中題目7-5 最大公約數和最小公倍數
1.實驗代碼
#include<stdio.h>
int main()
{
int m, n;
scanf("%d %d", &m, &n);
int a;
a = m%n;
int b;
b = m*n;
if(a == 0)
{
printf("%d %d", n, b/n);
}else
{
while(a != 0)
{
m = n;
n = a;
a = m%n;
}
printf("%d %d", n, b/n);
}
return 0;
}
2.設計思路
(1)算法
第一步:審題知其輸入格式為兩個正整數,輸出格式為這兩個正整數的最大公約數和最小公倍數。
第二步:設置自變量兩個正整數為m、n,再設置兩個參量a,b。
第三步:將“m%n”的值賦給a,“m*n”的值賦給b。
第四步:當a為0時,直接利用“printf("%d %d", n, b/n)”輸出結果。當a不為0時,將n的值賦給m,a的值賦給n,“m%n”的值賦給a,循環至a為0時,利用“printf("%d %d", n, b/n)”輸出結果。
注意:合理設置參量。
(2)流程圖
3.本題調試過程碰到問題及解決辦法
(1)錯誤截圖:
(2)錯誤改正:
出現格式錯誤,代碼由for語句改為while語句。
循環2中題目7-5 最佳情侶身高差
1.實驗代碼
#include<stdio.h>
int main()
{
int n;
char c;
float h;
scanf("%d",&n);
getchar();
while(n--)
{
scanf("%d %f",&c, &h);
getchar();
if(c == 'M')
{
printf("%.2f\n",h / 1.09);
}else
printf("%.2f\n",h * 1.09);
}
return 0;
}
2.設計思路
(1)算法
第一步:審題知計算公式。第一行輸入正整數N,隨后n行按照“性別 身高”的格式輸入查詢者的信息,其中“性別”為“F”表示女性、“性別”為“M”表示男性,“身高”為區間[1.0,3.0]之間的實數。輸出數據保留小數點后兩位。
第二步:設置變量正整數N(n),身高(h)以及c。
第三步:進入while循環。當輸入數據中有符號“M”,利用“printf("%.2f\n",h / 1.09)”輸出結果。其他情況時,利用“printf("%.2f\n",h * 1.09)”輸出結果。
注意:注意變量c的設置,用“char”而不是“int”。
(2)流程圖
3.本題調試過程碰到問題及解決辦法
(1)錯誤截圖
(2)錯誤改正
將參量c的類型改為“char”,用“getchar()”讀取字符。
三、總結和學習進度條
1、總結這幾周所學內容、遇到的問題以及解決方法。
所學內容:
(1)首先學習了編寫簡單的C語言程序,例如輸出Hello world!。
(2)if-else語句和for語句,例如輸出華氏-攝氏溫度轉換表。
(3)分支結構,例如四則運算。
(4)循環結構中的while語句和do-while語句,break語句和continue語句,例如判斷素數。
(5)另外通過完成PTA作業,我學到了float型對應.f,double型對應.lf。
(6)計算冪的時候用pow(m,n),m為底,n為次數。計算平方用sqrt(m),m為底。
遇到的問題:
(1)語句拼寫錯誤,丟失符號等馬虎導致的問題。
(2)參量類型設置錯誤。
(3)語句運用錯誤。
(4)個別題型沒有設計思路。
解決辦法:
(1)每次編譯前仔細檢查有無拼寫錯誤符號遺漏。
(2)通過查找書籍,網絡資料了解各類數據類型和語句的用法。
(3)沒有思路的題通過查找仿寫他人的代碼學習設計思路,並經常回顧練習寫代碼。
2、點評3個同學的本周作業,並邀請3名同學點評我的作業。
3、請用表格和折線圖呈現你這幾周的代碼行數和時間、博客字數和時間、涉及的知識點。
表格
折線圖
(注:錯誤代碼行數不在統計數據中。)