第四次部落格園作業
第四次作業
作業要求:https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2523
預習作業:
一.我觀看了翁愷老師關於c語言陣列部分的11個視訊及問題講解。
二.學到的東西:
我學到了什麼是陣列,怎樣定義陣列,怎樣使用陣列。並且在向老師提問的頁面上有一位同學問字元是否可以做下標。這個問題一開始我也感到非常困惑,之後我用devc++試了一下發現字元會轉化為它所對應的ASCII值。所以我也有了意外的收穫:字元也可以做下標。
三.對於所學知識點還有哪些疑問?有哪些知識點沒有學會?
我對於所學的知識點已經沒有疑問了,通過上課與老師進行學習和慕課學習,我已經明白了這節只是。但是我覺得在我今後自己的繼續學習中我一定會產生一些問題,我也會通過積極向比我程度好的同學詢問儘量自己解決。實在沒有辦法再來問老師。
7-2 求最大值及其下標
程式碼:
#include <stdio.h> int main(){ int m=0,i=0,max=0,maxb=0,j=0; scanf("%d",&m); int a[m]; for(i=0;i<m;i++) { scanf("%d",&a[i]); } maxb=0; for(j=0;j<m;j++) {if(a[j]>max) { max=a[j]; maxb=j; } } printf("%d %d",max,maxb); return 0;}
1.解題思路:
1.首先定義整形的變數m=0,i=0,max=0,maxb=0,j=0,並輸入該陣列記憶體放的數的個數。
2.通過輸入的個數在定義一個數組 a[m]。
3.進行一個執行m次的迴圈體,將每一個數都輸入到定義的陣列a中。
4.在確定一個數a{0]從0開始在進行m-1次的迴圈體,把第一個數字都和a[0]比較確定大小關係。
5.大於,那麼把這個數再繼續進行迴圈,不大於,則什麼都不做繼續迴圈。
6.最後在將數值定義的同時把這個數在數組裡的第幾個定義。
7.最後max和maxb就是題中所給的答案。
2.流程圖:
3.本題除錯過程碰到問題及解決辦法:
這次作業經過學習後已經沒有問題了。
7-2 輸出所有大於平均值的數
1.程式碼:
#include <stdio.h> int main() { int b=0,c=0,e=0,i=0; double d=0; scanf("%d",&b); if(b>=1&&b<=10) { int a[b]; for(i=0;i<b;i++){scanf("%d",&a[i]);} for(i=0;i<b;i++){c=c+a[i];} d=c*1.0/b*1.0; printf("%.2f\n",d); if(b==1){printf("\n");} else {for(i=0;i<b;i++) { if(a[i]>=d){printf("%d ",a[i]);} } } } else{printf("Invalid.");} return 0; }
2.解題思路
1.定義四個整形變數b,c,e,i。定義一個浮點型變數d。
2.輸入一個數確定陣列一共的數字個數。在定義一個數組。
3.進行一個for迴圈將每一個數字都定義給陣列,再進行for迴圈將陣列中的每一個數字都進行相加。
4.加之後再除以陣列內數的個數進行計算整個陣列的平均數。
5.進行一個for迴圈,把數組裡的每一個數都進行與平均數的比較。
6.這個數字大於平均數,進行輸出,不大於,繼續進行for迴圈至執行結束。
7.這個數不在1到10的範圍內就輸出Invalid。
2.流程圖
3.本題除錯過程碰到問題及解決辦法
個人總結:
在老師的帶領和我自己不斷學習中,我越來越對計算機產生濃厚的興趣,我收穫了許多。這要謝謝老師。在學習中我也曾經遇到了許多困難,但是我學會了獨立解決問題,並且可以和同學進行問題探討。我覺得我真的學到了很多東西。我以後會繼續認真學習c語言的。謝謝老師。
祝老師和助教新年快樂喲。
學習進度:
點評部落格:
https://www.cnblogs.com/zhangtianshu/p/10175981.html
https://www.cnblogs.com/1banwangkang/p/10171222.html
https://www.cnblogs.com/wanghaoze/p/10170390.html