- 任務描述
-
相關(guān)知識
- 二維數(shù)組的定義
- 二維數(shù)組的引用
- 二維數(shù)組的初始化
- 編程要求
- 測試說明
任務描述
本關(guān)任務:有一個3行4列的矩陣,編程求出其中最大的那個元素的值,以及它所在的行號與列號。
相關(guān)知識
二維數(shù)組的定義
在實際問題中有很多變量是二維的或多維的,因此C語言允許構(gòu)造多維數(shù)組。多維數(shù)組元素有多個下標,以標識它在數(shù)組中的位置,多維數(shù)組可由二維數(shù)組類推而得到。
二維數(shù)組定義的一般形式是:
類型說明符 數(shù)組名[常量表達式1][常量表達式2]
其中常量表達式1
表示第一維下標的長度,常量表達式2
表示第二維下標的長度。例如: int a[3][4];
說明了一個 3 行 4 列的數(shù)組,數(shù)組名為a,其下標變量的類型為整型。該數(shù)組的數(shù)組元素共有3×4個,即: a[0][0],a[0][1],a[0][2],a[0][3]
a[1][0],a[1][1],a[1][2],a[1][3]
a[2][0],a[2][1],a[2][2],a[2][3]
二維數(shù)組在概念上是二維的,其下標在兩個方向上變化,下標變量在數(shù)組中的位置也處于一個平面之中,但是,實際的硬件存儲器卻是連續(xù)編址的,也就是說存儲器單元是按一維線性排列的。
如何在一維存儲器中存放二維數(shù)組,可有兩種方式:一種是按行存放, 即放完一行之后順次放入第二行。另一種是按列存放,即存放完一列之后再順次存儲第二列。
在C語言中,二維數(shù)組是按行排列的。即先存放第1行,再存放第2行,最后存放第3行。每行中的元素也是依次存放。
上述二維數(shù)組的元素排列順序為:
a[0][0]→a[0][1]→a[0][2]→a[0][3]→a[1][0]→a[1][1]→a[1][2]→a[1][3]→a[2][0]→a[2][1]→a[2][2]→a[2][3]
C語言還允許使用多維數(shù)組。有了二維數(shù)組的基礎(chǔ),再掌握多維數(shù)組是不困難的。例如,定義三維數(shù)組的方法如下:
float a[2][3][4]; //定義三維數(shù)組a,它有2頁,3行,4列
二維數(shù)組的引用
二維數(shù)組的元素的表示形式: 數(shù)組名[下標][下標]
注意:
- 下標可以是整數(shù),也可以是整型表達式;
- 數(shù)組元素可以出現(xiàn)在表達式中,也可以賦值。
- 在使用數(shù)組元素時,應該注意下標值應在已定義的數(shù)組大小的范圍內(nèi)。
二維數(shù)組的初始化
-
分行給二維數(shù)組賦初值。如:
int a[3][4]= {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
-
可以將所有數(shù)據(jù)寫在一個花括弧內(nèi),按數(shù)組排列的順序?qū)Ω髟刭x初值。如:
int a[3][4]= {1,2,3,4,5,6,7,8,9,10,11,12};
-
可以對部分元素賦初值。 如:
int a[3][4]= {{1},{0,6},{0,0,11}};
-
如果對全部元素都賦初值(即提供全部初始數(shù)據(jù)),則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省。如:
int a[3][4]= {1,2,3,4,5,6,7,8,9,10,11,12};
與下面的定義等價: int a[ ][4]= {1,2,3,4,5,6,7,8,9,10,11,12};
在定義時,也可以只對部分元素賦初值而省略第一維的長度,但應分行賦初值。如: int a[ ][4]={{0,0,3},{ },{0,10}};
數(shù)組是一種構(gòu)造類型的數(shù)據(jù)。二維數(shù)組可以看作是由一維數(shù)組的嵌套而構(gòu)成的。設(shè)一維數(shù)組的每個元素都又是一個數(shù)組,就組成了二維數(shù)組。
當然,前提是各數(shù)組元素類型必須相同。一個二維數(shù)組也可以分解為多個一維數(shù)組。C語言允許這種分解,如二維數(shù)組a[3][4]
,可分解為三個一維數(shù)組,其數(shù)組名分別為:a[0]
,a[1]
,a[2]
。
對這3個一維數(shù)組不需另作說明即可使用。這3個一維數(shù)組都有4個元素,例如: 一維數(shù)組a[0]
的元素為:a[0][0]
,a[0][1]
,a[0][2]
,a[0][3]
。
必須強調(diào)的是,a[0]
,a[1]
,a[2]
不能當作數(shù)組元素使用,它們是數(shù)組名,不是單純的數(shù)組元素。
編程要求
根據(jù)提示,在右側(cè)編輯器補充代碼,有一個3行4列的矩陣,求出其中最大的那個元素的值,以及它所在的行號與列號。
測試說明
平臺會對你編寫的代碼進行測試:
測試輸入: 55 8 74 66 32 12 1 36 94 45 65 88
預期輸出: 55 8 74 66
32 12 1 36
94 45 65 88
max:94
row :3
colum :1
輸入格式: 輸入12個整數(shù),用空格分隔。
輸出格式: 前三行輸出3行4列矩陣:每個數(shù)據(jù)間用Tab鍵隔開; 第四行輸出最大值; 第五行輸出最大值的行數(shù); 第六行輸出最大值的列數(shù)。文章來源:http://www.zghlxwxcb.cn/news/detail-471089.html
開始你的任務吧,祝你成功!文章來源地址http://www.zghlxwxcb.cn/news/detail-471089.html
int main()
{
int a[M][N];
int i,j,max,row=0,colum=0;
for(i=0; i<M; i++)
for(j=0; j<N; j++)
{
scanf("%d",&a[i][j]);
}
max=a[row][colum];
for(i=0;i<M;i++)
for(j=0;j<N;j++)
{
if(a[i][j]>max)
{
row=i;colum=j;
max=a[row][colum];
}
}
for(i=0; i<M; i++)
{
for(j=0; j<N; j++)
{
printf("%d\t",a[i][j]);
}
printf("\n");
}
printf("max:%d\nrow:%d\ncolum:%d",max, row+1, colum+1);
return 0;
}
到了這里,關(guān)于有一個3行4列的矩陣,編程求出其中最大的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!