求高手解题!c语言程序题! 写一个函数,将一个3x3的整形二维数组转置,即行列互换。
2013-06-20
展开全部
呵呵,刚刚写好,思想主要就是,在矩阵的上三角中对行与列的调换!可利用双重循环实现,以下是具体参考代码,实现的功能已经抽象成为函数了,你看一下吧://--------------code-------------#include<iostream>
void MatrixTrun(int a[3][3])
{
int i,j,temp;
for(i=0;i<3;i++)
{
for(j=0;j<i;j++)
{
temp=a[j][i];
a[j][i]=a[i][j];
a[i][j]=temp;
}
}
}
int main()
{
int A[3][3]={1,2,3,4,5,6,7,8,9};
int i,j,time=0;
printf("矩阵为:");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(0==time%3)
printf("\n");
printf("%d ",A[i][j]);
time++;
}
}
time=0;
MatrixTrun(A);
printf("\n转置后矩阵为:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(0==time%3)
printf("\n");
printf("%d ",A[i][j]);
time++;
}
}
return 0;
}//----------------end----------------------附上运行演示截图:
void MatrixTrun(int a[3][3])
{
int i,j,temp;
for(i=0;i<3;i++)
{
for(j=0;j<i;j++)
{
temp=a[j][i];
a[j][i]=a[i][j];
a[i][j]=temp;
}
}
}
int main()
{
int A[3][3]={1,2,3,4,5,6,7,8,9};
int i,j,time=0;
printf("矩阵为:");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(0==time%3)
printf("\n");
printf("%d ",A[i][j]);
time++;
}
}
time=0;
MatrixTrun(A);
printf("\n转置后矩阵为:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(0==time%3)
printf("\n");
printf("%d ",A[i][j]);
time++;
}
}
return 0;
}//----------------end----------------------附上运行演示截图:
推荐于2018-04-12
展开全部
#include"stdio.h"
main()
{
int i,j,t;
int a[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%3d",a[i][j]);
printf("\n");
}
for(i=0;i<3;i++)
for(j=i;j<3;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
printf("转置后的矩阵为:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%3d",a[i][j]);
printf("\n");
}
}结果显示:
main()
{
int i,j,t;
int a[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%3d",a[i][j]);
printf("\n");
}
for(i=0;i<3;i++)
for(j=i;j<3;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
printf("转置后的矩阵为:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%3d",a[i][j]);
printf("\n");
}
}结果显示:
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-20
展开全部
核心思想应该就是:int Array[][];//这里就是你要转的源数组int i=0;int j=0;int temp[3][3];//你要转的目标数组for(i=0;i<3;i++){ for(j=i;j<3;j++) { temp[i][j]=Array[j][i]; }}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-20
展开全部
#include<stdio.h>
#define N 3
int a[N][N];
void f();
void main()
{
int i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
f();
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
void f()
{
int i,j,t;
for(i=1;i<N;i++)
for(j=0;j<i;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
#define N 3
int a[N][N];
void f();
void main()
{
int i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
f();
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
void f()
{
int i,j,t;
for(i=1;i<N;i++)
for(j=0;j<i;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询