作業要求:【https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2522】
要求一:
1、你觀看了幾個視頻?給出觀看列表截圖。
2、通過觀看視頻你學習到哪些知識點或者編程題目?
我對數組各加的了解,以及對函數應用了解的更多了,另外還了解了一些二維數組。
3、對於所學知識點還有哪些疑問?有哪些知識點沒有學會?
對於上周所學的知識點,函數的部分還有一點不熟練,我要再練習一下pta中的題,爭取更加好的掌握這些知識點。
要求二:
第13次作業(數組)7-2 輸出所有大於平均值的數 (15 分)
本題要求編寫程序,將輸入的n個整數存入數組a中,然后計算這些數的平均值,再輸出所有大於平均值的數。
輸入格式:輸入在第1行中給出一個正整數n(1≤n≤10),第2行輸入n個整數,其間以空格分隔。題目保證數據不超過長整型整數的范圍。
輸出格式:輸出在第1行給出平均值,保留2位小數。在第2行輸出所有大於平均值的數,每個數的后面有一個空格;如果沒有滿足條件的數,則輸出空行。
如果輸入的n不在有效范圍內,則在一行中輸出"Invalid."。
輸入樣例1:
10 55 23 8 11 22 89 0 -1 78 186
輸出樣例1:
47.10 55 89 78 186
輸入樣例2:0
輸出樣例2:Invalid.
一.實驗代碼
#include<stdio.h> #define N 10 int main() { int i,num; double average,sum; sum=0; int a[N]; scanf("%d",&num); sum=0; if(num>=1&&num<=10){ for(i=0;i<num;i++){ scanf("%d",&a[i]); sum=sum+a[i]; } average=sum/num; printf("%.2f\n",average); for(i=0;i<num;i++){ if(a[i]>average) printf("%d ",a[i]); } } else{ printf("Invalid."); } printf("\n"); return 0; }
二.解題思路
1.步驟
1).先定義整形變量num表示輸入數的個數和i,再定義雙精度變量average表示平均數,sum表示總和,同時定義數組a[num]。
2).先輸入數的個數,然后用if語句在for循環中輸入數組中的數,求出總和sum。
3).求average,並輸出到小數點后兩位。
4).在for循環中用if語句找出大於平均值的數,有則輸出,沒有則輸出Invalid.。
運行的結果:
2.流程圖
三.調試過程碰到的問題及解決辦法
在編譯成功后,開始運行時出現了能運行但是沒有結果的情況。
后來找到是了是第19行代碼應該輸出的是a[i]不是a[num]
還有一個問題就是測試點1的n=1一直是格式錯誤,后來知道應該在最后加上printf("\n");測試點通過了。
調試過程,輸入數組內數的個數和10個數的數據
求平均值
進入循環,找出比平均值大的數並輸出,程序結束
7-4 數字加密
輸入一個四位數,將其加密后輸出。方法是將該數每一位上的數字加9,然后除以10取余,做為該位上的新數字,最后將千位和十位上的數字互換,百位和個位上的數字互換,組成加密后的新四位數。例如輸入1257,經過加9取余后得到新數字0146,再經過兩次換位后得到4601。
輸入格式:輸入在一行中給出一個四位的整數x,即要求被加密的數。
輸出格式:在一行中按照格式“The encrypted number is V”輸出加密后得到的新數V。
輸入樣例:1257
輸出樣例:The encrypted number is 4601
一.實驗代碼
#include<stdio.h> int main() { int a[4]; int i=3,x,b; scanf("%d",&x); while(i!=-1){ a[i]=x%10; x=x/10; i--; } for(i=0;i<4;i++){ a[i]=a[i]+9; } for(i=0;i<4;i++){ a[i]=a[i]%10; } for(i=0;i<2;i++){ b=a[i]; a[i]=a[i+2]; a[i+2]=b; } printf("The encrypted number is "); for(i=0;i<4;i++){ printf("%d",a[i]); } return 0; }
二.解題思路
1.步驟
1).先定義整形變量i、x、b,再定義數組a[4],輸入四位整數x。
2).用while循環語句將四位整數的每一位輸入進數組a[4]中。
3).用for循環將數組的每一個數加9。
4).用for循環將數組的每一個數除以10取余。
5).調整下標使千位和十位上的數字互換,百位和個位上的數字互換。
運行的結果:
2.流程圖
三.調試過程碰到的問題及解決辦法
這道題我只是在如何換位上思考了一下其他的步驟都很明確
調試過程
輸入x=1257
進入while循環並將每一個數輸入進數組a[4]中
經過前兩個for循環將數組的每一個數先加9再除以10取余
進入第三個for循環使千位和十位上的數字互換,百位和個位上的數字互換,最后輸出a[i]的每一個數
個人總結:本周學習了數組,感覺自己接受的還行,另外還有兩個排序方法,冒泡法和選擇排序法,選擇排序法運用的還算熟練,冒泡法還需要加強,要在多看看書上的內容。
作業點評:
1.https://www.cnblogs.com/chumengGTRlhz/p/10116012.html