C語言書上例題看不懂,能幫忙看一下嗎

2021-05-02 08:51:37 字數 2526 閱讀 4870

1樓:

我用文字解釋一下吧,看看能不能清楚,提問的式子我都進行了加粗,希望能看得出來(圖的話我覺得給出的圖已經可以參考講述的,可以結合我的文字看看)

這個傳遞陣列名稱的函式,輸入有兩個,乙個是陣列,乙個是陣列長度

那麼我們知道:如果傳遞的n是10,陣列長度是10的話,它的元素的索引應該是0-9,也就是最大索引是9,n-1所表示的就是索引最大值。

目標是返順序存放,那麼也就意味著應該將第乙個元素(索引是0)與最後乙個元素(索引是9)進行互換,將第二個元素(索引是1)和倒數第二個元素(索引是8)進行互換......以此類推,直到中間位置也就是索引是4和5進行交換的時候。這個時候的話,4這個截止條件與n的關係是什麼呢?

4=(n-1)/2,這裡不是數學,因為n是整型變數,所以等號右邊出來的只會是整數部分。這就是m=(n-1)/2的**了,也就是設定交換的最後乙個元素的索引號。這裡你可以拿奇數個元素去試試,也是同樣成立的。

根據交換過程,那麼也就相應的有了:

i=0時,j=9=10-1-0

i=1時,j=8=10-1-1

...也就是j=n-1-i這個式子的由來。

知道了左邊,其實右邊和左邊是對應的,只不過左邊用的陣列的方式,右邊使用的指標的方式。

注意右邊的i,j宣告的是整型的指標,也就是他只能指向乙個整型的變數。題目中輸入*x就是相當於給定陣列頭部的位置索引,所以i=x就是相當於讓i這個指標指向陣列第乙個元素。陣列就是一系列整型數字連續順序儲存的結果,所以i+1表示的就是i這個元素的下乙個元素,也就是陣列的第二個元素,因此j=x+n-1表示i這個指標指向到陣列第n個元素,也就是陣列的末尾了,此時i,j和前面不一樣的,是都不再表示陣列的索引號,而是都是指向某個陣列元素的指標了。

這裡還宣告了乙個p指標,移動了m位,m和上乙個定義沒有區別,就是找到中間位置和開頭位置相差多少個元素,於是p=x+m也就是讓p這個指標指向陣列中間的元素。

2樓:用電知識分享

m = (n-1)/2; // 計算陣列的一半對應下標,n-1 是x[n]的最大下標

j = (n-1)-i; // 計算陣列從尾標起的下標,與i對稱,準備交換兩個陣列元素的值,實現倒敘功能

新手學習c語言書上那些練習題要做嗎 好多我看了源**還是看不懂 想問一下大神那些例題對以後有幫助嗎

3樓:蜻蜓點水

練習當然是要做

抄的,但是襲並不是剛學就要做那些

你先把所有關鍵字的用法學會,至少知

道那個東西是幹嘛的

然後就是簡單的,迴圈,分支,判斷結構的用法了看完這個之後,就可以看那些練習題了

要是哪個地方看不懂,試著自己改一改,或者用編譯器的除錯功能,看看資料是怎麼變化的,然後再理解下,人家的演算法是怎麼設計的,自己就能寫出程式了

4樓:匿名使用者

多多敲**;不能光看,還要進行除錯才行!多多f11一步步看結果對學習有好處

5樓:匿名使用者

只看代bai碼的話,自己寫起來還是du會很zhi吃力的,不需要dao說完全想好了,內懂了這個題怎麼做才寫**

容,可以邊寫邊思考,除錯也是很重要的。練習題不會的話,可以先把課本上的例題寫一遍,雖然是照著寫的,但是敲**和看**還是有很大差別的,可以學到一些東西,然後再寫練習題會好一些。

6樓:匿名使用者

實際工作很少用到,但是如果搞演算法就可能會用到,這些例題無非都是讓你明白當中的程式設計思想,其實現實中的演算法可以用c語言來實現

c語言問題,下面這個例題看不懂,誰能解釋一下,謝謝

7樓:小魚

在main()前面加乙個void,變成void main().

否則在visual studio 2005+的環境下編譯不能通過。

這個程式用i, j, k分別表示a,b,c對應的選擇,每個人都是從x到z的迴圈。

如果遇到i,j,k值相等的時候就繼續下乙個迴圈,因為每個人對陣的對手不能相同。

if(i!='x'&&k!='x'&&k!='z')這句是根據已知條件進行的檢查,

要求a不能是對陣x,k不能對陣x和z,

如果所有的檢查都通過了,那麼就printf輸出這組解。

8樓:匿名使用者

你把ijk看做是abc,a可能對xyz,b,c同樣可能對手xyz,條件for(i='x';i<='z';i++) for(j='x';j<='z';j++) for(k='x';k<='z';k++)但他們的對對手不能一樣,所以有 if(i!=j)和 if(i!=k&&j!

=k),又因為有a說他不和x比,c說他不和x,z比的條件,所以有 if(i!='x'&&k!='x'&&k!

='z'),只要滿足以上條件就能得出結果

9樓:匿名使用者

c語言是一門很重要的基礎語言,如果想要學好就多看一些書。。。。

一道C語言程式設計題,看不懂,求解釋

include 標頭檔案 main 列印出a的所有數權值 void sort int x,int n void sort int x,int n int p,i,a 10 p a for i 0 i 10 i scanf d p p a sort p,10 for p a,i 0 i 10 i 定義...

誰幫我解釋一下C語言程式!看好久也看不懂

這個程式是計算以下式子 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 19 1 20.1 n 1 n m 1 這裡的m n與程式裡的沒 關係啊,只是為了說明演算法 1 n m 第單數行都是加法,第雙數行都是減法。每...

哪位能幫忙看一下這個病理報告,看不懂能詳細講解一下,是初期還是晚期,嚴不嚴重需要注意什麼非常感謝

er pr陽性,適合內分泌 her2中等陽性,需要再行fish檢測,進一步明確診斷 ki67弱陽性,惡性程度較低,預後較好。哪位能幫忙看一下這個病理報告,看不懂能詳細講解一下,是初期還是晚期,嚴重麼需要注意什麼,非常感謝!5 er pr陽性,適合內分泌 her2中等陽性,需要再行fish檢測,進一步...