C语言对矩阵的转制 二维数组行列互换
2014-03-21 13:08
267 查看
//矩阵的转制就是二维数组的行列互换,比如有这样的一个矩阵a[3][3]= 1,2,3
4,5,6
7,8,9
你的目的就是要把它变成a[3][3]= 1,4,7
2,5,8
3,6,9
你可以发现1,5,9的位置没有改变。 如果你把矩阵按照1,5,9所在的直线对折,发现后来的矩阵跟前面的矩阵重叠的位置交换下 也就是把第1行第2列换成第2行第1列 ,a[0][1]=a[1][0], 因此得出a[i][j]互换a[j][i],这里以3*3的矩阵为例
#include <stdio.h>
#define N 3
void convert(int a[]
)
{
int i,j,temp;
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
printf("转置后:/n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%d ",a[i][j]);
putchar('/n');
}
void main()
{
int i,j,a
;
printf("请为数组赋值:");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
printf("初始数组:/n");
for(i=0;i<N*N;i++)
{
printf("%d ",*(a[0]+i));
if((i+1)%3==0)
printf("/n");
}
convert(array);
printf("/n新数组:/n");
for(i=j=0;i<N*N;i++)
{
printf("%d ",*(a[0]+i))
j++;
if(j%3==0) puts("");
}
}
}
4,5,6
7,8,9
你的目的就是要把它变成a[3][3]= 1,4,7
2,5,8
3,6,9
你可以发现1,5,9的位置没有改变。 如果你把矩阵按照1,5,9所在的直线对折,发现后来的矩阵跟前面的矩阵重叠的位置交换下 也就是把第1行第2列换成第2行第1列 ,a[0][1]=a[1][0], 因此得出a[i][j]互换a[j][i],这里以3*3的矩阵为例
#include <stdio.h>
#define N 3
void convert(int a[]
)
{
int i,j,temp;
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
printf("转置后:/n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%d ",a[i][j]);
putchar('/n');
}
void main()
{
int i,j,a
;
printf("请为数组赋值:");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
printf("初始数组:/n");
for(i=0;i<N*N;i++)
{
printf("%d ",*(a[0]+i));
if((i+1)%3==0)
printf("/n");
}
convert(array);
printf("/n新数组:/n");
for(i=j=0;i<N*N;i++)
{
printf("%d ",*(a[0]+i))
j++;
if(j%3==0) puts("");
}
}
}
相关文章推荐
- (c语言)将一个二维数组的行列互换
- c语言:将一个二维数组行和列的元素互换,存到另一个二维数组中。
- 写一个函数,使给定的一个二维数组(NXM)转置,即行列互换
- 8.4 写一函数,使给定的一个二维数组(3×3)转置,即行列互换。
- 二维数组的声明赋值遍历 行列互换 求最大值
- 二维数组动态分配(c语言)之HWOJ矩阵乘法
- C语言实现矩阵行列转换
- 互换二维数组的行列。要求数组的行数、列数以及各元素均从键盘输入;输出互换前数组内容和互换后数组内容。(要求循环输入进行测试)Java
- 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。
- Problem J: 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换
- ytu 1050:写一个函数,使给定的一个二维数组(3×3)转置,即行列互换(水题)
- Problem A: 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换
- 10月5日 c语言 将一个二维数组行和列的元素互换,存到另一个二维数组中
- 对3*3的二维数组进行转置(行列互换)
- 1050:写一个函数,使给定的一个二维数组(3×3)转置,即行列互换
- 数组与集合的应用之数组演练(将二维数组中的行列互换)
- 【C语言】二维数组中的查找,杨氏矩阵
- C语言学习之用二维数组实现矩阵转置
- c语言:将一个二维数组行和列的元素互换,存到另一个二维数组中。
- 写一个函数,使给定的一个二维数组(NXM)(N=M)转置,即行列互换(要求不额外创建二维数组)