作業要求: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
