
#include <stdioh>
const int N = 3;
int main() {
void zhuanzhi (int (p)[N]);
int a[N][N],i,j;
int (p)[N];
for(i = 0;i < N;i++)
for (j = 0;j < N;j++)
scanf("%d",&a[i][j]);
p = a;
zhuanzhi (p);
printf("转置后的矩阵:\n");
for(i = 0;i < N;i++) {
for(j = 0;j < N;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
void zhuanzhi (int (p)[N]) {
int i,j,t;
for(i = 0;i < N;i++) {
for(j = i;j < N;j++) {
t = ((p + i) + j);
((p + i) + j) = ((p + j) + i);
((p + j) + i) = t;
}
}
}
#include <stdioh>
int main()
{ struct aaa
{ int x;
int y;
};
struct aaa t,a[3][3]= {0,0,0,1,0,2,1,0,1,1,1,2,2,0,2,1,2,2};
int i,j;
for(i=0; i<3; i++)
{ for(j=0; j<3; j++)
printf("[%d,%d] ",a[i][j]x,a[i][j]y);
printf("\n");
}
printf("after:\n");
for(i=0; i<3; i++)
for(j=0; j<i; j++)
{ t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
for(i=0; i<3; i++)
{ for(j=0; j<3; j++)
printf("[%d,%d] ",a[i][j]x,a[i][j]y);
printf("\n");
}
return 0;
}
或:
#include <stdioh>
struct aaa
{ int x;
int y;
};
void zhuanzhi(struct aaa a[][3])
{ struct aaa t;
int i,j;
for(i=0; i<3; i++)
for(j=0; j<i; j++)
{ t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
void prt(struct aaa a[][3])
{ int i,j;
for(i=0; i<3; i++)
{ for(j=0; j<3; j++)
printf("[%d,%d] ",a[i][j]x,a[i][j]y);
printf("\n");
}
}
int main()
{ struct aaa a[3][3]= {0,0,0,1,0,2,1,0,1,1,1,2,2,0,2,1,2,2};
prt(a);
zhuanzhi(a);
printf("after:\n");
prt(a);
return 0;
}
#include<stdioh>
int main()
{ int a[3][4],b[4][3],i,j;
printf("array a:\n");
for(i=0;i<3;i++) //输入三行四列数组
{for(j=0;j<4;j++)
{scanf("%10d",&a[i][j]);
b[j][i]=a[i][j];} //实现倒置
printf("\n");
}
printf("array b:\n");
for(i=0;i<4;i++) //输出倒置后的 数组
{for(j=0;j<3;j++)
printf("%5d",b[i][j]);
printf("\n");
}
return 0;
}
//源码如下:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int iRow, iCol;
int pOrignal = NULL, pTran = NULL;
int i, j;
cout<<"请输入矩阵的行、列数(用空格隔开): ";
cin>>iRow>>iCol;
cout<<endl;
// 分配内存空间
pOrignal = new int[iRow];
for (i=0; i<iRow; i++)
{
pOrignal[i] = new int[iCol];
memset(pOrignal[i], 0, sizeof(int)iCol);
}
pTran = new int[iCol];
for (i=0; i<iCol; i++)
{
pTran[i] = new int[iRow];
memset(pTran[i], 0, sizeof(int)iRow);
}
// 输入
cout<<"请输入矩阵各元素的值: "<<endl;
for (i=0; i<iRow; i++)
{
for (j=0; j<iCol; j++)
{
cin>>pOrignal[i][j];
}
}
cout<<endl;
// 转置
for (i=0; i<iCol; i++)
{
for (j=0; j<iRow; j++)
{
pTran[i][j] = pOrignal[j][i];
}
}
// 输出
cout<<"转置以后的矩阵为: "<<endl;
for (i=0; i<iCol; i++)
{
for (j=0; j<iRow; j++)
{
cout<<setw(5)<<pTran[i][j];
}
cout<<endl;
}
// 释放内存空间
for (i=0; i<iRow; i++)
{
delete[] pOrignal[i];
}
pOrignal = NULL;
for (i=0; i<iCol; i++)
{
delete[] pTran[i];
}
pTran = NULL;
getchar();
return 0;
}
// 测试结果如下:
#include<stdioh>
void reset(int a[][3])
{
int i,j,temp;
for(i=0;i<3;i++)
for(j=i;j<3;j++)
{temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;}
}
main()
{
int a[3][3],i,j;
printf("input numbers:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
reset(a);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)