c語言程式疑惑(找高手幫忙解釋程式)

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

1樓:大頭

1.為什麼要在定義陣列後就直接輸出printf("array a: \n");這個有什麼意義;

答:意義就是提示下面輸出的資料是陣列 a 的資料

迴圈執行printf("%5d",a[i][j]); 將陣列 a 的全部內容輸出。

2.程式中有兩處for語句巢狀迴圈,為什麼會有兩次?還有就是第一處的for語句巢狀迴圈得出的值,輸到哪兒?第二處的for語句巢狀是不是和第一次都作用一樣,得出都值也一樣?

答:第一個for迴圈是用來輸出陣列 a 的資料;第二個for迴圈是用來輸出

陣列 b 的資料。資料輸出到 dos 介面(就是那個黑色的視窗),

的出的值是不一樣的,b[0][0] == a[0][0],

b[1][0] == a[0][1]

b[2][0] == a[0][2]

b[0][1] == a[1][0]

b[1][1] == a[1][0]

b[2][1] == a[1][0]

仔細觀察,就可以看出不一樣。

3.程式中b[j][i]=a[i][j];語句是把a[i][j]賦給b[j][i]是把j和i對調嗎?還是其他的意思?

,答:程式中b[j][i]=a[i][j];語句是把a[i][j]賦給b[j][i],但不是把 i

和j 對調。

有不明白的地方,可以繼續問,希望對你能有所幫助。c 語言是非常有用的一門語言。

問題補充:

for(k=2;k<6;k++,k++)

這是一個雙重迴圈,當外部迴圈k==2時,k<6 成立,所以執行一次迴圈體後,輸出 s = 15;然後執行 k++,k++;經過兩次自加,這樣k = 4,k < 6成立,所以在執行迴圈體,輸出 k = 10;然後執行k++,k++;這樣k =6,k <6 不成立,推出迴圈。結束

2樓:餘味優秀

1.這句話本身沒什麼含義,只是起提示作用,告訴你下面要輸出的陣列是a

最終輸出結果是

array a:

1 2 3

4 5 6

array b:

1 42 5

3 6如果沒有printf("array a: \n");printf("%5d",b[i][j]);就是下面這樣子,很不直觀.

1 2 3

4 5 6

1 42 5

3 62.本文有4個for語句,前兩個是通過巢狀一一賦值,把a的值轉置賦給b。後兩個是通過兩個for語句將b的值一一輸出.

就前兩個for語句舉例,順序是i=0,j=0、1、2;i=1,j=0、1、2.

3.程式中b[j][i]=a[i][j];意思是通過i,j對調以及for語句對i.j值的迴圈,將a中各值一次轉置賦給b。應該沒有別的意思了。

寫明瞭是

b[0][0]=a[0][0];b[1][0]=a[0][1];b[2][0]=a[0][2];

b[0][1]=a[1][0];b[1][1]=a[1][1];b[2][1]=a[1][2];

這樣就可以捨去前兩個for語句了。

不過還是建議學好for,挺好用的。

3樓:初心必達科技

第一個:

直接輸出array a;這個沒什麼重要意義,只是為了顯示的完整性,方便閱讀者。這裡的a指的不是上面定義的陣列a.

第二個:2個for迴圈是巢狀的,運算順序是先執行第一個for迴圈,然後符合第一個for中的條件之後就去執行第二個for迴圈,當第二個for迴圈執行到不滿足j<=2的時候再回到第一個for迴圈。也就是說第一個for執行一次,第二個for要執行3次。

第一處處for語句巢狀迴圈得出的值,輸到顯示屏,本質上講,只是把a陣列的元素輸出而已,唯一區別就是最後將陣列a和b中的元素對調了,printf("array b: \n");這個以下的for迴圈輸出的雖然表面上是b陣列的元素,實際上卻是a陣列中的元素,因為在上面的for語句中已經將a陣列中的元素賦給b陣列了。

第3個問題:程式中b[j][i]=a[i][j]; 是指把他們不同位置的元素進行對調,比如b[j][i]這個位置儲存的是5,a[i][j]這個位置儲存的是8,則這樣對調之後a,b陣列中的b[j][i]和a[i][j]位置儲存的就都是同一個元素了。既b陣列中的元素都被a陣列中的元素給取代了,但是順序不一樣。

4樓:匿名使用者

1、c語言缺乏圖形介面,所以文字提示很重要(這是你人性化設計的標誌),這個僅僅只是提示下面要顯示的是陣列a: printf("array b: \n");的作用同理;

2、由於是二維陣列,就像矩陣橫豎都要考慮,就像找一個座位一樣,先找在第幾排再找第幾列就找到那個位置了,至於是先找排還是先找列,那要看引數的設定;printf("%5d",a[i][j]);輸出到dos介面啦?!b[j][i]=a[i][j];然後把值依個賦給b陣列這樣b是a的轉置矩陣;大體上一樣,第一次輸出陣列a的所有值,第二次輸出矩陣b

其實這些你把程式執行一下就知道了,實踐是最重要的;

3、是把a矩陣的第i行第j列的值放到b矩陣的第j行第i列;i與j只表示位置關係,他們之間並沒有交換;

C語言程式執行的錯誤!求高手幫忙

改好啦,你再試試 include include include define n 3 學生人數 struct student stu n 學生數 void input void select 查詢 void statistics 統計 void menu void input printf n n...

C語言問題,求高手幫忙,C語言問題,求高手幫忙!!

1.輸入輸出問題,在輸入整數或浮點數後面直接輸入字元或字串,要清除一下回車號,或都在輸入整數後直接清空快取,再讀取內容 2.越界問題,修正問題1後,如果記憶體裡沒有連繼的 0 字元,你這程式會嚴重越界 語句 k j 1 前加一句 if c j 0 break 到尾就不要再迴圈了,防止越界 改完後的效...

編寫c語言程式,實現分數的約分,編寫c語言程式,實現分數的約分

perject 見習魔法師 給的就是啊,不過演算法屬於最基本的。支援 芙瑤凌 經理 四級 提到的輾轉相除法,稍加改動如下 turboc2編譯通過的噢,關於輾轉相除法見參考資料 昨晚提交的程式有個問題啊,不好意思 汗顏 現在就改過來 include include main printf n i n ...