C語言 求高手幫我解釋一下這個程式這是求右螺旋的

時間 2021-08-11 17:49:52

1樓:喻鵬程

我終於看懂了,第一時間來講給你聽

如果你聽懂了,給我加30分哦

螺旋首先加的是行,加完行再加列,然後減行,最後減列,如此迴圈if裡判斷的是看行列有沒有越界,當然越界還有另一種,即是a[row][col]!=0一開始沒有賦值的元素自動給的0,現在不是0就是說已經到界限了

然後是if裡面的執行問題了,因為我們判斷的是越界,最後一個行和列已經越界,自減。再者就是dir_i自加一,就是進入下一個迴圈(就是我們自定義的陣列),當然還要判斷我們定義的陣列有木有過界。在if裡面最後一個行和列的加,我也不怎麼會表達,就是本來的已經有值了,你加了之後上去賦值。

最後輸出就是浮雲了

2樓:匿名使用者

#include

void main()

,i,j,row,col,dir_i,n;

struct directory

dir[4]=,,,};//這裡定義結構體並宣告dirprintf("enter n:");

scanf("%d",&n);

for(i=1,dir_i=0,row=col=0;i<=n*n;i++)

}printf("array a is :\n");

for(i=0;i

}這個程式沿著螺旋方向依次進行的,

(0,0)(0,1)(0,2)(0,3)

(1,0)(1,1)(1,2)(1,3)

(2,0)(2,1)(2,2)(2,3)

(3,0)(3,1)(3,2)(3,3)

從(0,0)(1,0)(2,0)(3,0)順序變化,到達(3.0)時點已經溢位,所以進行if判斷

c語言:請高手幫我解釋一下這個程式!!

3樓:匿名使用者

首先你定義抄了一個函

襲數fun,有一個指向int型的指標p

在那個函式中你列印p[5]

你傳入了一個a[3]

這樣在fun函式裡,將&a[3]當成了陣列的首地址,p[5]就代表了p+5

而a[3]在fun裡是被當做p,那麼p+5就到了a[8]那麼就是9

4樓:匿名使用者

void fun(int *p)

main()

;fun(&a[3]); //將 a 陣列中第3個元素的地址(也就是4的地址)傳給fun}

5樓:我是不是師兄

你可以把下標表示轉換為指標表示 就清晰了

void fun(int *p)

指標p後移5個單位 然後取值用於輸

內出指標p的位置是在fun(&a[3]);

也就容是 陣列a的第4個元素

從第4個元素開後移5個單位

a[3] a[4] a[5] a[6] a[7] a[8]

起點 +1 +2 +3 +4 +5輸出a[8]

a[8]就是9

6樓:陳卓means祥林

a[3]就相當於a中的第4個元素p[5]就相當於a[3]向後推5個元素,也就是a[8],你可以搜尋一下陣列與指標詳細瞭解一下

7樓:匿名使用者

從main函式開始bai,先是定義一個陣列a,接著du呼叫fun函式,zhifun函式的形dao參是一個指標變數。調內用fun函式時將

容a[3]的地址傳給p,而在printf中可以將p[5]解釋為 *(p+5) ,這時p中存放的是a[3]的地址,(p+5)就是當前地址的偏移量,所以是a[8],所以就是9

c語言課程設計,求高手幫我解釋一下這個**啊,打上註釋!再給個流程圖。給150分啊

C語言的問題?誰能解釋一下,C語言問題,這個程式看不明白,誰能解釋一下 謝謝

這個程式寫的不對吧?前面應該是 include include 包含標頭檔案,調入c語言函式庫 後面主函式是 main 主函式main 主函式結束 詳解 程式的功能是從鍵盤輸入一個數x,求x的正弦值,然後輸出結果。在main 之前的兩行稱為預處理命令 詳見後面 預處理命令還有其它幾種,這裡的incl...

關於C語言的問題,求高手幫我詳細解釋一下下列這句話

signed和unsigned 對於這三種型別來說作用都是一樣的signed 是有符號型別 也就是說最高位作為符號位unsigned 是無符號型別 最高位不作為符號位例如 8位 int 他的表示範圍 是 128 127unsigned char 的表示範圍就是 0 255一共都能表示 256 個數字...

大俠們幫我解釋一下這個C語言源程式

while str str ch str 這句的作用是指標迴圈後移,當str指向的內容不為 0 而且str!ch為真的時候,指標往後指一位。你的問題是 那怎麼能找出不同的那個字母呢?這個迴圈並不查詢不同的那個字母,而是通過迴圈,查詢每一位字母,看有沒有和ch相同的,ch為你的輸入。你的輸入有兩種 一...