c语言for循环中i,C语言for循环语句中a[i][j]和a[j][i]有什么区别
匿名用戶
1級(jí)
2014-04-27 回答
可以將i 理解成行,j 理解成列,a[i][j]和a[j][i]取值不同
比如,假設(shè)一個(gè)3維數(shù)組(你的是5x5),數(shù)值分別為:
1 2 3
4 5 6
7 8 9
循環(huán)中,當(dāng)i=0時(shí),a[i][j]取值為1 2 3,a[j][i]取值為1 4 7,根據(jù)這個(gè)來理解結(jié)果的不同吧
追問:
意思是i與j在括號(hào)中的位置變了,但表示的意義還是不變,依舊代表行和列,對(duì)嗎?
追答:
你這里是2重循環(huán)
for ()
for()
這里你可以將外循環(huán)理解成行,內(nèi)循環(huán)理解成列
追問:
恩,我知道,我的意思是a[i][j]和a[j][i]中i和j的位置調(diào)換了,可二重循環(huán)并沒有變,但卻輸出了行和列的和,這就意味著二維數(shù)組的維度是由i,j所表示的意義決定的,對(duì)吧?!系統(tǒng)是怎么識(shí)別i表示行,j表示列的呢
追答:
行和列是我們用來還理解的,比如一個(gè)數(shù)組a[3][4],
計(jì)算機(jī)內(nèi)存儲(chǔ)數(shù)組數(shù)據(jù)的時(shí)候,是連續(xù)存放的,依次是:
a[0][0],a[0][1],a[0][2],a[0][3],a[1][0],……
也就是說對(duì)a[i][j]來說,每個(gè)i的值(比如i=0時(shí)),都有j個(gè)數(shù),也就是可以理解為每一行,都有j個(gè)數(shù)據(jù),按循環(huán)順利排隊(duì)取值而已
for (i。。。)
for(j。。。)
中a[i][j],和
for (j。。。)
for(i。。。)
中a[j][i],是一樣的
系統(tǒng)是按照數(shù)組的取值來判斷的,其實(shí)計(jì)算機(jī)內(nèi)就是一個(gè)連續(xù)的數(shù)據(jù)存儲(chǔ),行和列是為了我們方便理解而拿來說的,并不存在行和列
追問:
可是按你寫出來的循環(huán),結(jié)果是一樣的。。。他兩次for循環(huán)是一樣的應(yīng)該,只是求和時(shí)i,j的位置不一樣。。。
追答:
for (i。。。)
for(j。。。)
中a[i][j],和
for (j。。。)
for(i。。。)
中a[j][i],是一樣的
你如果用同一個(gè)循環(huán)
for (i。。。)
for(j。。。)
每次循環(huán)求和a[i][j]和a[j][i]就不同了,
追問:
【原來你一直不懂我的問題】額,是呀,問題就是同一個(gè)循環(huán)只變換了ij的位置結(jié)果怎么就不同了?。。。。。。
追答:
你上面的截圖程序,兩段根本就是一樣的程序
n求和的時(shí)候,你的循環(huán)換成了
for (j=0;j<5;j++)
for (i=0;i<5;i++)
按照你的說法,這里應(yīng)該是:
for (i=0;i<5;i++)
for (j=0;j<5;j++)
追問:
是的。 重看了你的回答,原來剛看回答的時(shí)候會(huì)錯(cuò)意了,抱歉。問題依舊沒解決。。。我依舊不懂他怎么循環(huán)的。。。
追答:
假設(shè)一個(gè)3維數(shù)組(你的是5x5),數(shù)值分別為:
1 2 3
4 5 6
7 8 9
循環(huán)中,
當(dāng)i=0時(shí),a[i][j]取值為1 2 3,a[j][i]取值為1 4 7
當(dāng)i=1時(shí),a[i][j]取值為4 5 6,a[j][i]取值為2 5 8
當(dāng)i=2時(shí),a[i][j]取值為7 8 9,a[j][i]取值為3 6 9
如果你的程序不輸出過程值,只是輸出最后結(jié)果的話,全部數(shù)據(jù)加和,結(jié)果肯定是一樣的
總結(jié)
以上是生活随笔為你收集整理的c语言for循环中i,C语言for循环语句中a[i][j]和a[j][i]有什么区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab 集群搭建,MATLAB 科
- 下一篇: 2021/03/09~2021/08/1