第四次作業
我觀看了浙江大學程序設計入門-C語言課程中有關數組的第六周和第七周部分,總共觀看了17個視頻。
觀看列表截圖
通過觀看視頻我學習到的知識點:
*利用for循環來遍歷數組。
*數組的集成初始化:直接用大括號給出數組所有元素的初始值,不需要給出數組大小。
*數組作為函數參數時,往往必須再用另一個參數來傳入數組大小。
對於所學知識點還有的疑問:
*專一多能不是好的代碼,例如在一段代碼中,i即是循環遍歷的變量,又用來作為其他的標志,這樣是不好的。一開始不是很理解這句話的意思,反復看了幾遍視頻之后就能理解了。
沒有學會的知識點:
*二維數組的tic-tac-toe游戲中讀入矩陣,檢查行,檢查列,檢查對角線。
作業要求https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2522
PTA作業
第16周 第13次作業 7-2 輸出所有大於平均值的數
題目:
本題要求編寫程序,將輸入的n個整數存入數組a中,然后計算這些數的平均值,再輸出所有大於平均值的數。
輸入格式:輸入在第1行中給出一個正整數n(1≤n≤10),第2行輸入n個整數,其間以空格分隔。題目保證數據不超過長整型整數的范圍。
輸出格式:輸出在第1行給出平均值,保留2位小數。在第2行輸出所有大於平均值的數,每個數的后面有一個空格;如果沒有滿足條件的數,則輸出空行。如果輸入的n不在有效范圍內,則在一行中輸出"Invalid."。
1.實驗代碼
#include <stdio.h> int main () { int n,i,a[10],sum; double average; sum=0; scanf("%d",&n); if(n>=1&&n<=10) { for(i=0;i<n;i++) { scanf("%d",&a[i]); sum=sum+a[i]; } average=sum/n; printf("%.2f\n",average); for(i=0;i<n;i++) { if(a[i]>average) { printf("%d ",a[i]); } } printf("\n"); } else { printf("Invalid."); } return 0; }
2 解題思路
(1)算法:**利用for循環進行數組的賦值並求和,求出平均值后,再利用for循環將數組中每個數與平均值一一比較,輸出符合要求的數。
*輸入n。
*當輸入的n值滿足條件時,利用for循環遍歷數組,進行數組的賦值並求和。
*求出平均值。
*再次利用for循環遍歷數組,將數組中每個數與平均值比較。
*輸出符合要求的數。
*當輸入的n值不滿足條件時,輸出“Inwalid”。
(2)流程圖:
3.本題調試過程碰到問題及解決辦法
(1)錯誤:在利用for循環給數組賦值時,語句“i<n”,錯寫成了“i<=n”。
(2)有錯誤提示的截圖
當正常輸入n等於3,接着在輸入三個數,按回車鍵后,沒有給出計算結果,而是顯示要繼續輸入。
(3)編譯器設置斷點、單步調試的界面截圖
(4)解決辦法:通過反復嘗試,我找出了錯誤的地方並去掉了多余的等號,改正后正常輸入后可以得出結果。
第17周 第14次作業 7-2 求最大值及其下標
題目:本題要求編寫程序,找出給定的n個數中的最大值及其對應的最小下標(下標從0開始)。
輸入格式:輸入在第一行中給出一個正整數n(1<n≤10)。第二行輸入n個整數,用空格分開。
輸出格式:在一行中輸出最大值及最大值的最小下標,中間用一個空格分開。
1.實驗代碼
#include <stdio.h> int main () { int i,a[10],n,max; scanf("%d",&n); for (i=0;i<n;i++) { scanf("%d",&a[i]); } max=0; for (i=0;i<n;i++) { if(a[max]<a[i]) { max=i; } } printf("%d %d",a[max],max); return 0; }
2解題思路
(1)算法:**利用兩次for循環遍歷數組,第二個for循環中嵌套if語句用來給查找最大值。
*第一次利用for循環,遍歷數組,給數組賦值。
*先令max等於0,在進行最大值的查找。
*第二次利用for循環,遍歷數組,再嵌套if語句,將數組中每個數進行比較,找出最大值及其下標。
(2)流程圖
3.本題調試過程碰到問題及解決辦法
(1)錯誤:數組長度是一個整型常量表達式,而我把數組長度設成一個變量,這是不對的。
(2)有錯誤提示的截圖
(3)編譯器設置斷點、單步調試的界面截圖
(4)解決辦法: 將數組長度該成一個常量,例如10,程序就可以正常運行了。
個人總結:
1.本周我學習了的內容:數組的定義,利用for循環給數組賦值,還可以將數組中每個數都拿出來進行相關計算。
我的收獲:*數組是一些具有相同類型的數據的集合,數組中的數據按照一定的順序排列存放。
*數組長度是一個整型常量表達式,設定數組的大小,在定義時必須指定。
*數組下標從0開始,下標不能越界。
2.難點:*利用for循環遍歷數組來進行賦值,比較等計算。
*邏輯關系復雜的程序總是思路混亂,沒有頭緒。
措施:*認真看書,先解決在知識點上的欠缺。
*上網查找資料,培養自主學習的能力。
*多敲代碼,反復練習,熟能生巧。
*虛心向同學學習,借鑒他們的優點。
累積代碼行數和時間:
時間 | 12月13日 | 12月14日 | 12月15日 | 12月16日 | 12月17日 | 12月18日 | 12月19日 | 12月20日 | 12月21日 | 12月22日 | 12月23日 | 12月24日 | 12月25日 |
代碼行數 | 30 | 55 | 73 | 102 | 135 | 157 | 160 | 176 | 189 | 194 | 210 | 225 | 236 |
累積博客字數和時間:
時間 | 12月13日 | 12月14日 | 12月15日 | 12月16日 | 12月17日 | 12月18日 | 12月19日 | 12月20日 | 12月21日 | 12月22日 | 12月23日 | 12月24日 | 12月25日 |
博客字數 | 0 | 0 | 0 | 0 | 0 | 200 | 300 | 300 | 300 | 450 | 750 | 850 | 900 |
折線圖:
點評:https://www.cnblogs.com/mayijing/p/10158728.html
https://www.cnblogs.com/zst1/p/10133338.html
https://www.cnblogs.com/nansu/p/10134717.html