c部落格作業 指標

2022-05-23 07:03:08 字數 3060 閱讀 4997

經測試,不能直接指向一維陣列

所謂「行指標」,二維陣列a[2][3]來說,就指的是a[0],a[1]這兩行,那麼如果行指標加數字的話,如果p+1,那麼這時指向的就是a[1],p本身指向的是a[0]。

通過不同的測試輸出發現:

(p+1)輸出的是2,第一行的第二個元素。根據指標與陣列的關係我們知道,陣列名可以當成指標來用,而這裡明顯a[0]是第一行的一維陣列名,也是第一行的首位址,參考第六個輸出不難發現,這裡的p可以換成a[0],即(a[0]+1),所以驗證了上面的推測:*p = a[0]

對行指標,用上面那個例子來說:p其實是乙個二級指標,而a[0],a[1]是乙個一級指標

2.二級指標

級指標名就是二維陣列名,一級指標名就是二維陣列中的一維陣列行名

這章指標的學習還是有很多的缺漏點,因為在指標剛要學的時候,我的字元陣列還沒有學到位,然後學習指標就很匆忙,剛開始的時候也沒有跟著林老師的步伐走,課堂派的預習作業也有點潦草的應付了事,沒有很理解就去看同學的答案,自己並不是很理解。在這次指標的上機房考試的時候,我也不是很好的完成,因為這次考試有兩題的原題,而且這兩題都是我之前在pta做過的,但是不是很理解,然後還有一題是在同學的部落格看到的,剛好記了下來,才完成了三題的考試,其他的頭緒一點都沒有,我覺得在接下來的時間內,我要好好地複習好之前的內容,然後補缺補漏,不能遺漏自己的知識點。

感覺這兩周的**量,對於指標的**還沒有刷多少,然後陣列的還有字元陣列還沒有刷完,所以目標仍有距離。

2.1.1 偽**

先定義好函式binsearch

int main()

int binsearch(int *a, int n, int key, int *count)

再如果 (key > a[mid])

否則最後返回值為-1。

}

2.1.2 **截圖

2.1.3 總結本題的知識點

1.掌握利用二分法取中間值來做題

if (key < a[mid])

else if (key > a[mid])

2.注意在迴圈開始的時候正確利用指標來進行計算次數的累加

(*count)++;

2.1.4 pta提交列表及說明

部分正確:是因為在計算的時候loc找到的位置是正確的,所以打出-1的時候是正確的,然後在下一步在vs除錯中顯示我的輸出資料中的count也就是次數是錯了,少了一次好像。然後我就在vs上面一直除錯,一直更換(*count)++的位置,最後輸出正確的值之後放到pta上面就直接正確了
2.2.1 偽**

先定義函式char *getmonth(int n)

int main()

char *getmonth(int n)

}

2.2.2 **截圖

2.2.3 總結本題的知識點

1.考函式直接返回值,還有switch的運用

switch (n)

2.注意最後的default:return null,然後在主函式得出結果

2.2.4 pta提交列表及說明

1.編譯錯誤:第一次編譯錯誤是因為返回月份的英文本母的時候,用的是『』而不是「」,然後在vs上也不知道為什麼「」會加下線,然後執行不了

2.部分正確:使用了switch之後,月份的輸入有錯誤,所以後來改正了之後就正確了

2.3.1 偽**

先宣告好函式fun(char *s, char *t);

主函式:

void fun(char *s, char *t)

strcat(t, s);

}

2.3.2 **截圖

2.3.3 總結本題的知識點

1.掌握字串長度的定義方法int k = strlen(s);

2.掌握反向的儲存int j = 0;

for (int i = k - 1; i > -1; i--)

3.最後注意strcat(t, s);

2.3.4 pta提交列表及說明

1.編譯錯誤,剛開始我要寫這乙個strcat(t, s)可是在vs上不能執行,所以就放棄,就使用別的方法,然後還是不行,中間也出現編譯的錯誤

2.答案錯誤,後來看到用了上面那個可以過,就開始改了,在for迴圈那個地方改了兩次,改不正確,最後才發現要從大往小的走。

1.取了改段**的一部分

int qmod(int a,int b,int c)

return res;

}對於這段**,應該是靈活的運用了二級指標的方法;而我現在對於二級指標是很陌生的,所以改段**很值得去學習

2.從整體看來,改段**寫的非常的簡潔易懂,但是**如果再加一些注釋或許會更好

C部落格作業 指標

switch n 如果n為1,返回 january 如果n為2,返回 february 如果n為3,返回 march 如果n為4,返回 april 如果n為5,返回 may 如果n為6,返回 june 如果n為7,返回 july 如果n為8,返回 august 如果n為9,返回 september ...

C部落格作業 指標

定義迴圈變數i 輸入t字串 for i 0 to t i 0 遍歷字串 判斷m和i的關係 if m i for i 0 to maxn s i 0 end i else for i 0 to t m 1 0 賦值 s i t m 1 m end i s i 0 加上結束符 定義迴圈變數i,最大值所在...

c部落格作業 指標

主函式 int i,n char string maxn 定義字元陣列 並賦值 呼叫函式int max len char s,int n 通過下標法來選出最長的字串 for int i 0 imax max初始化為0 每當有字串的長度更長時 則交換 最後返回max的值 本題是對下標法的靈活運用 將乙...