例5.4 将一个二维数组行和列元素互换,存到另一个二维数组中。例如
a= 1 2 3
4 5 6
b= 1 4
2 5
3 6
程序如下:
#include <iostream>
using namespace std;
int main( )
{
int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
cout<<″array a:″<<endl;
for (i=0;i<=1;i++)
{
for (j=0;j<=2;j++)
{ cout<<a[i][j]<<″ ″;
b[j][i]=a[i][j];
}
cout<<endl;
}
cout<<″array b:″<<endl;
for (i=0;i<=2;i++)
{
for(j=0;j<=1;j++)
cout<<b[i][j]<<″ ″;
cout<<endl;
}
return 0;
}
运行结果如下:
array a:
1 2 3
4 5 6
array b:
1 4
2 5
3 6
例5.5 有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
开始时把a[0][0]的值赋给变量max,然后让下一个元素与它比较,将二者中值大者保存在max中,然后再让下一个元素与新的max比,直到最后一个元素比完为止。max最后的值就是数组所有元素中的最大值。
程序如下:
#include <iostream>
using namespace std;
int main( )
{ int i,j,row=0,colum=0,max;
int a[3][4]={{5,12,23,56},{19,28,37,46},{-12,-34,6,8}};
max=a[0][0]; //使max开始时取a[0][0]的值
for (i=0;i<=2;i++) //从第0行~第2行
for (j=0;j<=3;j++) //从第0列~第3列
if (a[i][j]>max) //如果某元素大于max
{max=a[i][j]; //max将取该元素的值
row=i; //记下该元素的行号i
colum=j; //记下该元素的列号j
}
cout<<″max=″<<max<<″,row=″<<row<<″,colum=″<<colum<<endl;
return 0;
}
输出结果为
max=56,row=0,colum=3
评论