linux c中动态申请二维数组,Linux C 编程详解第五篇:二维数组

二维数组 :

存储类型 数据类型 数组名[行数][列数]

列数不能够省略 , 行数可以省略

数组元素的引用 : 数组名[行标][列标]

练习 :

1.找出二维数组中的最大值, 如果有多个最大值, 找出其位置以及数值.(不要排序).

#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.找出数组中的特殊值,为一行中的最大值, 同时为一列中的最小值.

#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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值