C++题目: 写一个函数将一个3*3的整型矩阵转置。

 我来答
很多游戏
高粉答主

2019-05-30 · 游戏精通者,攻略技能点满
很多游戏
采纳数:91 获赞数:386852

向TA提问 私信TA
展开全部

1、首先在编辑器中准备好一个空白的c语言文件,引入C语言标准库,在main函数中定义一个3x3阶矩阵以及循环体中要用的变量i和j,以及一个用来交换数据的临时变量tmp,然后下一步就可以开始编写处理转置的部分了:

2、二维数组需要用两层循环输出,而算法是将一个3x3阶矩阵转置时,只需将主对角线右上方的数组元素“n[0][1]”、“n[0][2]”、“n[1][2]”,分别与主对角线左下放的数组元素“n[1][0]”、“n[2][0]”、“n[2][1]”的值通过一个临时变量进行交换即可实现矩阵的转置:

3、最后一步运行程序,在右侧的命令行可以看到转置后的结果,以上就是用c语言实现矩阵转置的操作:

BrotherGao
2013-03-27 · TA获得超过1536个赞
知道小有建树答主
回答量:334
采纳率:0%
帮助的人:399万
展开全部

楼主你好!

完美C代码团队为你答题!

根据你的需要我将代码实现如下!

#include<iostream>using namespace std;

void T(int (*a)[3]){

 for(int i=0;i<3;i++)

 for(int j=0;j<2;j++){

  int temp;

  temp=a[i][j];

  a[i][j]=a[j][i];

  a[j][i]=temp;

 }

}

 

int main(){

 int maxtrix[3][3]={{3,4,6},

                       {4,45,5},

                       {13,3,8}};

  printf("原矩阵:\n");

  for(int i=0;i<3;i++){

  for(int j=0;j<3;j++)

  cout<<maxtrix[i][j]<<" ";

  cout<<endl;

  }

  printf("\n转置后矩阵:\n");

  T(maxtrix);

  for(int i=0;i<3;i++){

  for(int j=0;j<3;j++)

  cout<<maxtrix[i][j]<<" ";

  cout<<endl;

  }

  return 0;

   

}

 

希望我的回答对你有帮助!望采纳!

 

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-03-27
展开全部
#include<iostream>
using namespace std;
void tran(int a[], int n)//假设方阵各行按上到下依次存在一维数组中,n表示方阵的阶数
{
int i,j,tem;
for(i=0; i<n ; i++)
for(j=i; j<n; j++)
{
tem=a[i*n+j];
a[i*n+j]=a[j*n+i];
a[j*n+i]=tem;
}
}
void main()
{
int i, j, n, *a;
cout<<"请输入方阵的的阶数:n= ";
cin>>n;
a=new int[n*n];
for(i=0; i<n; i++)
{
cout<<"输入第"<<i+1<<"行: ";
for(j=0; j<n; j++)cin>>a[i*n+j];
}
cout<<"经过转置后,该方阵变为:"<<endl;
tran(a,n);
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
cout<<a[i*n+j]<<"\t";
cout<<endl;
}
delete[]a;
}
/*这里是我运行的结果:
例1:
请输入方阵的的阶数:n= 3
输入第1行: 1 2 3
输入第2行: 4 5 6
输入第3行: 7 8 9
经过转置后,该方阵变为:
1 4 7
2 5 8
3 6 9
Press any key to continue例2:
请输入方阵的的阶数:n= 4
输入第1行: 1 2 3 4
输入第2行: 5 6 7 8
输入第3行: 9 10 11 12
输入第4行: 13 14 15 16
经过转置后,该方阵变为:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
Press any key to continue
*/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dsdwd112
2013-03-26
知道答主
回答量:56
采纳率:0%
帮助的人:15.4万
展开全部
#include <iostream>
using namespace std;
int main()
{
int a1,a2,a3,a4,a5,a6,a7,a8,a9;
cout<<"请输入原矩阵,数与数之间回车:"<<endl;
cin>>a1;
cin>>a2;
cin>>a3;
cin>>a4;
cin>>a5;
cin>>a6;
cin>>a7;
cin>>a8;
cin>>a9;
cout<<"原矩阵为:";
cout<<endl;
cout<<a1;
cout<<" ";
cout<<a2;
cout<<" ";
cout<<a3;cout<<endl;
cout<<a4;cout<<" ";
cout<<a5;cout<<" ";
cout<<a6;cout<<endl;
cout<<a7;cout<<" ";
cout<<a8;cout<<" ";
cout<<a9;
cout<<"矩阵转置为:";
cout<<endl;
cout<<a1;
cout<<" ";
cout<<a4;
cout<<" ";
cout<<a7;cout<<endl;
cout<<a2;cout<<" ";
cout<<a5;cout<<" ";
cout<<a8;cout<<endl;
cout<<a3;cout<<" ";
cout<<a6;cout<<" ";
cout<<a9;
return 0;
}
这个刚自己编的,很简单的写法。希望采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式