作業要求:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2522
觀看mooc:
1.我觀看了3個視頻:數組,二維數組和數組運算,搜索,排序初步
2.我知道了
1)數組一旦創建,就不能更改大小
2)a[0]可以存在但是無用,a[3][5]為3行5列的矩陣
3.對於素數的相關程序掌握不熟,還有對於素數的判斷
第十三次作業:7-2 輸出所有大於平均值的數
#include <stdio.h> int main() { int n,i; double average,sum=0; scanf("%d",&n); int a[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]); } } else { printf("Invalid."); } printf("\n"); return 0; }
解題思路:
1.定義變量n,i,sum,average
2.輸入數字個數,定義數組a[n],n不再有效范圍輸出Invalid.
3.輸入數據,計算相加之和,和平均數
4.比平均數大的a[i]輸出,小於等於平均數不輸出
流程圖:
運行結果:
運行結果是一堆不相關的數字,然后我又返回去讀題,覺得可能是定義錯了,將a[i]從int改為long
運行結果還是一堆不相關的數字,然后我發現我沒有輸出平均數,加上了輸出平均數
因為平均數輸出並沒有問題,所以我將斷點設在了if語句
結果c++並沒有進入if語句中直接就return 0,然后突然發現if語句實際上只會應用一次,要把它放在for循環中
輸出的值是對的,但是不應該輸出Invalid.然后我發現它的輸出條件錯誤,同學又告訴我輸入int a[n]不是a[i],我對這些地方進行了改正
結果正確,在PTA中也顯示正確。
第十四次作業:7-2 求最大值及其下標
#include <stdio.h> int main () { int n,max,index=0; scanf("%d",&n); int a[n],i; for(i=0;i<n;i++){ scanf("%d",&a[i]); } max=a[0]; for(i=0;i<n;i++){ if(max<a[i]){ max=a[i]; index=i; } } printf("%d %d",max,index); return 0; }
解題思路:
1.定義變量n,max,index
2.輸入n后,定義a[n],max=a[0]
3.如果max<a[i],max=a[i],同時index=i依次循環
4.輸出max index
流程圖:
運行結果:
運行結果是正確的,在PTA上卻報錯,然后我在循環處設置了斷點
調試也沒有出錯,然后我認真地查看了代碼,發現有兩行代碼的位置錯誤
答案正確
本周總結:
1.本周學習了數組,函數的相關計算,讓我更加充分地掌握了循環的應用
2.數組的循環條件和函數的定義對我來說有些困難,有時候無從下手;后來通過詢問同學,在網上查閱資料解決
折線圖:
作業點評: https://www.cnblogs.com/xiaofengqaq/p/10115956.html
https://www.cnblogs.com/kaitbkleyue/p/10164062.html
https://www.cnblogs.com/0224ming/p/10164004.html