linux c中动态申请二维数组,Linux C 编程详解第五篇:二维数组
二維數(shù)組 :
存儲類型 數(shù)據(jù)類型 數(shù)組名[行數(shù)][列數(shù)]
列數(shù)不能夠省略 , 行數(shù)可以省略
數(shù)組元素的引用 : 數(shù)組名[行標(biāo)][列標(biāo)]
練習(xí) :
1.找出二維數(shù)組中的最大值, 如果有多個最大值, 找出其位置以及數(shù)值.(不要排序).
#include
int main(int argc, const char *argv[])
{
int a[3][4] = {{1,23,4,23}, {234,123,342,45}, {342,45,234,67}};
int i, j;
int max = a[0][0];
for(i = 0; i < 3; i++)
{
for(j = 0; j < 4; j++)
{
if(max < a[i][j])
{
max = a[i][j];
}
}
}
for(i = 0; i < 3; i++)
{
for(j = 0; j < 4; j++)
{
if(max == a[i][j])
{
printf("最大值為: a[%d][%d] = %d \n", i, j, a[i][j]);
}
}
}
return 0;
}
2.行列互換. (不允許另外增加存儲空間).
#include
int main(int argc, const char *argv[])
{
int a[4][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16}};
int i, j;
int temp;
for(i = 0; i < 4; i++)
{
for(j = 0; j < i; j++)
{
temp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = temp;
}
}
for(i = 0; i < 4; i++)
{
for(j = 0; j < 4; j++)
{
printf("%2d ",a[i][j]);
}
printf("\n");
}
return 0;
}
3.找出數(shù)組中的特殊值,為一行中的最大值, 同時為一列中的最小值.
#include
int main(int argc, const char *argv[])
{
int a[3][4] = {{1,2,3,7}, {3,4,5,8}, {1,2,3,9}};
int i, j, k;
int x, y;
int temp, max, min;
for(i = 0; i < 3; i++)
{
max = a[i][0];
y = 0;
for(j = 0; j < 4; j++)
{
if(max < a[i][j])
{
max = a[i][j];
y = j;
}
}
min = a[i][y];
x = i;
for(k = 0; k < 3; k++)
{
if(min > a[k][y])
{
min = a[k][y];
x = k;
}
}
if(x == i)
{
printf("特殊值為:a[%d][%d] = %d\n", x, y, a[x][y]);
}
}
return 0;
}
總結(jié)
以上是生活随笔為你收集整理的linux c中动态申请二维数组,Linux C 编程详解第五篇:二维数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 上单AD牛头出装路线&上单老牛出
- 下一篇: 电脑设置开启禁用网络安全防火墙防火墙禁用