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