ytu 1050:寫一個函數,使給定的一個二維數組(3×3)轉置,即行列互換(水題)


1050: 寫一個函數,使給定的一個二維數組(3×3)轉置,即行列互換

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 154   Solved: 112
[ Submit][ Status][ Web Board]

Description

寫一個函數,使給定的一個二維數組(3×3)轉置,即行列互換。

Input

一個3x3的矩陣

Output

轉置后的矩陣

Sample Input

1 2 3 4 5 6 7 8 9

Sample Output

1 4 7 2 5 8 3 6 9

HINT

 

  主函數已給定如下,提交時不需要包含下述主函數


/* C代碼 */

int main()

{

  int a[3][3];

  int i,j;

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

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

       scanf("%d",&a[i][j]);


  zhuangzhi(a);

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

  {

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

        printf("%d ",a[i][j]);

     printf("\n");

  }

   return 0;

}




/* C++代碼 */


int main()

{

  int a[3][3];

  int i,j;

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

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

       cin>>a[i][j];

  zhuangzhi(a);

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

  {

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

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

    cout<<endl;

  }

  return 0;

}

 

Source


   水題,之所以拿上來,是因為這道題我用指針做的,也是順便熟悉了指針使用。
  另外,定義一個指針的時候不要忘記初始化,做這道題犯了這個低級錯誤,驚醒,切記切記。
 1 #include <iostream>
 2 using namespace std;  3 void zhuangzhi(int(*p)[3])  4 {  5     int (*p2)[3] =  new int[3][3];  //注意要初始化  6     for(int i=0;i<3;i++)  7         for(int j=0;j<3;j++){  8             *(*(p2+i)+j)=*(*(p+i)+j);  9  } 10     for(int i=0;i<3;i++) 11         for(int j=0;j<3;j++){ 12             *(*(p+i)+j)=*(*(p2+j)+i); 13  } 14     delete *p2; 15 }

 

 Freecode : www.cnblogs.com/yym2013


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM