作業要求:https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2523
觀看mooc:
1 視頻截圖
2 通過觀看視頻我明白了
1)數組作為函數參數時,往往必須再用另一個參數來傳入數組的大小。
2)判斷素數還可以構造素數表來解決。
3)在代碼中加大括號可以用來調試。
3. 對於視頻中那些關於指針的還不太明白,並且對素數的相關程序掌握的還不夠熟練。
7-2 求最大值及其下標 (20 分)
本題要求編寫程序,找出給定的n個數中的最大值及其對應的最小下標(下標從0開始)。
輸入格式:
輸入在第一行中給出一個正整數n(1<n≤10)。第二行輸入n個整數,用空格分開。
輸出格式:
在一行中輸出最大值及最大值的最小下標,中間用一個空格分開。
試題代碼
#include<stdio.h> int main(void) { int n,i,index; int a[10]; index = 0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<n;i++) { if(a[0]<a[i]) { a[0] = a[i]; index=i; } } printf("%d %d",a[0],index); return 0; }
解題思路
1 定義n,i,index; n是用戶輸入的整數的個數。
2 輸出最大值與它對應的下標。
3 將最大值與第一個數交換,輸出交換后的n個數。
程序流程圖
總結:
此題所遇到的問題:在數組中,要注意i是從0開始的。
運行結果
調試截圖
7-2 輸出所有大於平均值的數 (15 分)
本題要求編寫程序,將輸入的n個整數存入數組a中,然后計算這些數的平均值,再輸出所有大於平均值的數。
輸入格式:
輸入在第1行中給出一個正整數n(1≤n≤10),第2行輸入n個整數,其間以空格分隔。題目保證數據不超過長整型整數的范圍。
輸出格式:
輸出在第1行給出平均值,保留2位小數。在第2行輸出所有大於平均值的數,每個數的后面有一個空格;如果沒有滿足條件的數,則輸出空行。
如果輸入的n不在有效范圍內,則在一行中輸出"Invalid."。
試題代碼
#include<stdio.h> int main(void) { int i,n; double average,sum=0; scanf("%d",&n); int a[n]; sum=0; if(n < 1||n>10){printf("Invalid.");} else{ 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"); return 0; }
解題思路
1定義變量 i,n, average,sum;average存放平均值,sum保存數據之和。
2 利用for循環求平均值。
3逐個與平均值比較,輸出大於平均值的數。
程序流程圖
運行結果
調試截圖
個人總結:
這周學習了數組,明白了使用數組可以讓一批相同類型的變量使用同一個數組變量名,用下標來相互區分,優點是表達簡潔,可讀性好,便於使用循環結構,但使用時一定要注意是從a[0]開始。通過這周努力的學習,我相信自己一定可以更好地學習c語言了。
學習進度
點評作業:
1 https://www.cnblogs.com/zst1/p/10133338.html
2 https://www.cnblogs.com/zhaoxuan/p/10165311.html
3https://www.cnblogs.com/mayijing/p/10158728.html