作業要求:【https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2523】
預習作業截圖及感受:
在老師上課之前,讓我們觀看了一些數組的MOOC視頻,通過觀看老師給的視頻達到了讓我們對新課程的預先效果,並且讓我們呢對新課程有了濃厚的興趣。盡管觀看視頻后我會有或多或少的問題許多問題,但是隨着老師上課的慢慢講解,我產生的疑問也被一一解決。我總共觀看了第六周第七周的五個視頻,通過觀看這些視頻我基本上學到了數組的概念和如何操作數組等基礎的知識點,而且我也知道了怎么解決數組的編程題。但讓我產生的最大的疑問是數組到底是如何存儲數據的;以及再給數組定義中,中括號的前面那個字母到底是用來干什么的我很好奇,尤其是對於二維數組我沒有掌握牢靠。
第十五次作業:
7-3 查找整數 :
本題要求從輸入的N個整數中查找給定的X。如果找到,輸出X的位置(從0開始數);如果沒有找到,輸出“Not Found”。
代碼
#include <stdio.h> int main() { int a=0,b=0,c=0,i=0; scanf("%d %d\n",&a,&b); int e[a]; for(i=0;i<a;i++){scanf("%d",&e[i]);} for(i=0;i<a;i++) { if(b==e[i]){printf("%d",i);c++;} } if(c==0){printf("Not Found");} return 0; }
解題過程:
1.先定義四個整形變量a,b,c,i,在輸入數組里的數的個數,和要查找的整數b。
2.在定義一個數組e[a]。
3.先進行一個循環體將每一個整數都輸入到處數組里中。
4.在進行一個循環體,將數組里的每一個數字都和b進行對比。
5.如果和b相等的話就輸出這個數在數組里的位數i,在把c進行加一。
6.判斷如果循環完之后c是0,那么輸出Not Found。
流程圖:
運行結果:
調試過程;
個人總結:
在這個運行的過程中主要確定的是在for循環的過程中判斷是否與所給的數據相等,如果想等則進行輸出的結果,並進行次數的加一,在for循環結束的時候在進行判斷是否有與所給數據的數字相等,如果不想等則進行notfound指令輸出。
第十四次作業:
7-2 求最大值及其下標 :
本題要求編寫程序,找出給定的n個數中的最大值及其對應的最小下標(下標從0開始)。
代碼
#include<stdio.h> int main() { int a=0,b=0,c=0,i=0; scanf("%d\n",&a); int e[a]; for(i=0;i<a;i++) { scanf("%d",&e[i]); } b=e[0]; for(i=1;i<a;i++) { if(e[i]>b){b=e[i];c=i;} } printf("%d %d",b,c); return 0; }
解題思路:
1.首先定義四個整形的變量a,b,c,i,並輸入該數組內存放的數的個數。
2.通過輸入的個數在定義一個數組e [a]。
3.首先進行一個執行a次的循環體,將每一個數都輸入到定義的數組e中。
4.在確定一個數e[0]從0開始在進行a-1次的循環體,把弟一個數字都和e[0]比較確定大小關系。
5.如果大於,那么把這個數輸入到b中在繼續進行循環,如果不大於,則什么都不做繼續循環。
6.最后在將數值定義給b的同時把這個數在數組里的第幾個定義給c。
7.最后輸出b和c就是題中所給的答案。
流程圖:
運行結果;
調試過程:
個人總結:
一定要在數組定義前把數組里的個數定義好,防止數組會多生出別的數,這樣就會產生亂碼的情況,導致后期在循環計算中會出現多余的現象。而且在寫循環的時候一定奧不嫌麻煩,要分部寫。否則就會讓程序出現混亂的情況。
互評學習與進度:
點評博客:
1.【https://www.cnblogs.com/zcybky/p/10152047.html】