作業要求【https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2523】
我觀看了7個大視頻。通過觀看視頻我學習到了怎樣定義數組,和怎樣去使用數組,如何遍歷一個數組,如何遍歷一個二維數組,怎樣在數組中尋找一個你想要的值看是否存在,怎樣進行逆序或者從大到小從小到大排序。有問題的是二維數組不太能理解,雖然能定義出來二維數組,但是用起來不是很熟練,全部將數組定義為0這個也很難證明白,老師說過需要for遍歷一下,但是一個大括號0就可以實現數組全部定義為0,這個方法到底實用與否我很難說,不知道是正確的還是錯誤的。
第13次作業
題目 7-2 輸出所有大於平均值的數
#include<stdio.h> int main() { int a[10],i,count; double sum=0,average; scanf("%d",&count); if(count>=1&&count<=10){ for(i=0;i<count;i++){ scanf("%d",&a[i]); sum=sum+a[i]; } average=sum/count; printf("%.2f\n",average); if(count==1)printf("\n"); for(i=0;i<count;i++){ if(a[i]>average)printf("%d ",a[i]); } } else printf("Invalid."); return 0; }
解題思路
第一步:首先定義一個數組和一些變量
第二步:將輸入得數按順序依次存入到數組中
第三步:將數組中存進去的數進行相加並取平均
第四步:將數組中的數字從頭到尾依次和平均數進行比較,並將比平均數大的數字輸出
第五步:最后輸出平均數和比平均數大的數
流程圖
本題調試過程碰到問題及解決辦法
起初程序運行結果是正確的
調試截圖
但是當count==1的時候,他是沒辦法輸出回車的,程序過不去,於是我修改了程序,加上count==1的條件
運行結果截圖
個人總結
這周我學習到了二維數組,二維數組需要用到兩個for循環去遍歷,適用於存很多字符串類型的題目,但是定義使用並不那么熟練,我多次找題目去聯系,希望可以解決二維數組的使用困難。數組定義也有一些疑問,全部定義為0是一定要用for循環還是只需要大括號0就可以。mooc網上是說大括號0就可以,但是老師說過需要遍歷。
第十四次作業 題目 7-2 求最大值及其下標
#include<stdio.h> int main() { int i,a[10],number,t=0,k=0; scanf("%d",&number); for(i=0;i<number;i++){ scanf("%d",&a[i]); } t=a[0]; for(i=0;i<number;i++){ if(a[i]>t){ t=a[i]; k=i; } } printf("%d %d",t,k); return 0; }
解題思路
第一步:先定義一個數組a和t,k,i,number
第二步:輸入你要輸入的數值給number,表示你要輸入幾個數
第三步:用for循環來將你所輸入的數按順序交給數組a
第四步:令最大值即t為數組第一個數,並進行循環判斷,如果后一個數大於這個最大值,那么將這個數賦值給最大值,將這個數的在數組中的下標交給k保存
第五步:輸出最大值及其下標
流程圖
題調試過程碰到問題及解決辦法
運行也是正確的
調試也是正確的
但是pta無法過去,后來我發現,如果最大值不設數組第一個的話,很有可能循環結束出來的最大值不是數組中的數。
程序修改后截圖
程序調試截圖
程序運行截圖
個人總結
這周我學習到了指針,並且明白了指針是指向一個地址,數組是指針的特殊形式,而且數組中是如何存入數字的,他存入的是指針,那個指針指向了一個地址中的數,所以將數字存了進去,但是理解還是不熟練,我需要多看mooc去理解。
互評和學習進度
點評博客【https://www.cnblogs.com/1a2B3c4D/p/10160490.html】
【https://www.cnblogs.com/error203/p/10160025.html】
【https://www.cnblogs.com/abcefg123/p/10161739.html】