這段c語言為什麼答案是

2022-09-25 16:45:11 字數 1516 閱讀 1993

1樓:呵呵he呵呵

找出最大數所在的行和列以及最大數的值(最大數為12,在2行1列)

int m=a[0][0];,m的初值為a[0][0],即1,if(a[i][j]>m) 這句話是把a[i][j]與m的值進行比較,如果大於m的值,則把a[i][j]值給m,把行和列給ii和jj,所以m中為最大值,ii和jj為最大值所在的行和列,輸出結果就為2 1 12了~~

希望能夠幫到你~~

2樓:匿名使用者

這個程式的作用是將陣列a內的最大元素的行列值輸出。

在兩層迴圈體內,判斷元素值的大小,只要元素值比m大,就將該元素值賦給m,並將行號賦給ii,列號賦給jj,這樣,執行到最後,m就是最大的元素值,ii和jj就分別代表了這個最大元素的行號和列號。

那一句話的意思就是,判斷m與a【i】【j】的大小,如果a【i】【j】大於m,就把a【i】【j】的值賦給m,並將這個元素的行號賦給ii,列號賦給jj。

不知道這樣說清楚不?

3樓:

if(a[i][j]>m)

如果a[i][j]大於m 則: m=a[i][j], ii=i,jj=j;

m初始值是1(a[0][0]=1);

雙重迴圈裡 當 m=12 也就是a[2][1]的時候 m的值是最大 if語句不會再執行!

所以 當m=12是 ii=2, jj=1;m=12; 此時if不會再執行,ii、jj、m就不會再被賦值!

所以答案 是 2 1 12

4樓:

這段程式初始化了一個二維陣列並找出其最大元素,然後輸出該最大元素的座標和值

兩層for就是對二維陣列進行遍歷,if(a[i][j]>m)

既是對遍歷到的每一個元素,如果比m大(m已初始化為二維陣列的第一個元素),就用m記錄該值,並用ii和jj記錄其座標,直到找到最大值並遍歷完全,最後輸出。

5樓:

if(a[i][j]>m)

如果 陣列a[i][j]這個數》m=1;進入判斷。重新給m,ii,jj賦值。

因為是雙重判斷當i=0,j=0時,a[0][0],這個數==m所以沒進入if語句,此時j++重新回到for(j=0;j<4;j++),j=1, a[i][j]==a[0][1]==2;滿足if語句條件進入迴圈賦值m=a[i][j]; ii=i; jj=j;(m=2;ii=0,jj=1).

但是跳出if語句後迴圈for(j=0;j<4;j++)依然執行,此時j=2瞭然後重復著上面的步驟,只不過m的值變了不在是初始化時定義的m=a[0][0];而是前面進入if語句後被重新賦值的m=2。所以進入if語句的條件也變成了if(a[0][2]>2)...

就這樣一直迴圈到j=4時跳出迴圈重新進入for(i=0;i<3;i++),i++變成i=1,又開始新一論的迴圈...於是當i=2進入迴圈,j=1的時候a[i][j]==[2][1]==12

a[2][2]、a[2][3]的值是3和4小於12所以沒進入if語句。整個迴圈結束。

輸出的值就是 2 1 12 了

c語言這段括號匹配程式為什麼是錯的

標頭檔案 另存為seqstack.h typedef struct seqstack void stackinitiate seqstack s 初始化順序堆疊s int stacknotempty seqstack s 判順序堆疊s非空否,非空則返回1,否則返回0 int stackpush se...

c語言答案,C語言問題答案

include include int letter char c else int longest char string else else return place void main printf n 你看看吧,就這個了 int maxword char str curwordlen 0 e...

求解釋這段C語言左移程式,求這段C語言的解釋 求詳細

你這個 太古老了吧 引數列表 還是這種形式 求這段c語言的解釋 求詳細 80 找你還真不容易,剛才的程式錯了,改了,你看看!include define uint unsigned intvoid delay ms uint uitime void delay ms uint uitime void...