nikoEzGami


私信TA

用户名:qqzz5231181

访问量:3943

签 名:

等  级
排  名 6406
经  验 1364
参赛次数 0
文章发表 21
年  龄 0
在职情况 学生
学  校 湖北工业大学
专  业

  自我简介:

湖北工业大学计算机学院

TA的其他文章

解题思路:
主对角线好确定

法1其余手写,略

法2循环赋值转置。

if(j==i) continue;

           arr2[3*i+j]=arr1[3*j+i];//i+1是行,j+1是列。互换即可实现转置

注意事项:
暂时不明
参考代码:

法1

#include

using namespace std;

int main()

{

   int arr1[9]={};

   int arr2[9]={};

   int num;

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

   {

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

       {

           cin>>num;

           arr1[3*i+j]=num;

           if(j==i) arr2[3*i+j]=num;//主对角线

       }

   }

   //手写自转置

   arr2[1]=arr1[1*3+0];

   arr2[2]=arr1[2*3+0];

   arr2[3]=arr1[1];

   arr2[5]=arr1[2*3+1];

   arr2[6]=arr1[2];

   arr2[7]=arr1[1*3+2];

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

   {

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

       {

           cout<<arr2[3*i+j]<<' ';

       }

       cout<<endl;

   }

   

   return 0;

}


法2

#include<iostream>

using namespace std;

int main()

{

   int arr1[9]={};

   int arr2[9]={};

   int num;

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

   {

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

       {

           cin>>num;

           arr1[3*i+j]=num;

           if(j==i) arr2[3*i+j]=num;//主对角线

       }

   }

   //循环转置赋值arr2

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

   {

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

       {

           if(j==i) continue;

           arr2[3*i+j]=arr1[3*j+i];

        }

   }

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

   {

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

       {

           cout<<arr2[3*i+j]<<' ';

       }

       cout<<endl;

   }

   

   return 0;

}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区