Ⅰ 假定一個二維數組的定義為「int a[3][4]={{3,4},{2,8,6}}」則a[2][0]的值為多少
a[2][0]的值為0
int a[3][4]表示定義一個3行4列的整型數組a;{{3,4},{2,8,6}}表示初始化數組。
最外圍{}中的每一個{}表示依次對每一行賦值,不夠的補0},所以{{3,4},{2,8,6}}表示對數組的前兩行賦值,每行也是依次賦值,不足補0;
int a[3][4]={{3,4},{2,8,6}}
最終數組存儲情況:數組的下標是從0開始的,如下圖所示。
所以a[2][0]的值為0
(1)c語言a34a43的區別擴展閱讀:
二維數組本質上是以數組作為數組元素的數組,即「數組的數組」,類型說明符 數組名[常量表達式][常量表達式]。二維數組又稱為矩陣,行列數相等的矩陣稱為方陣。
對稱矩陣a[i][j] = a[j][i],對角矩陣:n階方陣主對角線外都是零元素。
參考資料:網路——二維數組
Ⅱ C語言求一簡單程序,二維數組矩陣,按降序排列,輸入矩陣
#include "stdio.h"
struct num //用一個結構體存,方便排序
{
int a[5];
};
int main ()
{
int i,j,sum;
struct num n[5],tem;
for (i = 0;i < 5;i ++)
{
sum = 0;
for (j = 0;j < 4;j ++)
{
scanf ("%d",&n[i].a[j]);
sum += n[i].a[j];
}
n[i].a[4] = sum/4;
}
for (j = 1;j < 5;j ++)
for (i = 0;i < 5 - j;i ++)
{
if (n[i].a[4] < n[i+1].a[4])
{
tem = n[i];
n[i] = n[i+1];
n[i+1] = tem;
}
}
for (i = 0;i < 5;i ++)
{
for (j = 0;j < 5;j ++)
printf ("%d ",n[i].a[j]);
printf ("\n");
}
return 0;
}
有什麼看不懂的就問吧
Ⅲ 如何取出數組中所有不同行不同列的數據 用C語言
一個笨辦法:
for (int i=0;i<[數組行數];i++)
{
for(int j=0;j<[數組列數];j++)
{
if(j==i){.........}
else{.........}
}
}
Ⅳ int *a[3][4]是什麼意思
int **a[3][4]是雙指針類型的2維數組,
int *a[3][4]是指針類型的2維數組,
二維數組本質上是以數組作為數組元素的數組,即「數組的數組」。
(4)c語言a34a43的區別擴展閱讀
在一維數組 b 中,數組名 b 代表數組的首地址,即數組第一個元素的地址,b+1 代表數組第二個元素的地址,…,b+n 代表數組第 n+1 個元素的地址。
所以既然 a[0]、a[1]、a[2]、…、a[M–1] 分別表示二維數組 a[M][N] 第 0 行、第 1 行、第 2 行、…、第 M–1 行各一維數組的首地址,
那麼同樣的道理,a[0]+1 就表示元素 a[0][1] 的地址,a[0]+2 就表示元素 a[0][2] 的地址,a[1]+1 就表示元素 a[1][1] 的地址,a[1]+2 就表示元素 a[1][2] 的地址……a[i]+j 就表示 a[i][j] 的地址。