閱讀439 返回首頁    go 阿裏雲 go 技術社區[雲棲]


九度1470:調整方陣

題目描述:
輸入一個N(N<=10)階方陣,按照如下方式調整方陣:
1.將第一列中最大數所在的行與第一行對調。
2.將第二列中從第二行到第N行最大數所在的行與第二行對調。
依此類推...
N-1.將第N-1列中從第N-1行到第N行最大數所在的行與第N-1行對調。
N.輸出這個方陣

輸入:
包含多組測試數據,每組測試數據第一行為一個整數N,表示方陣的階數.
接下來輸入這個N階方陣.

輸出:
調整後的方陣

樣例輸入:
4
3 6 8 7
6 7 5 3
8 6 5 3
9 8 7 2

樣例輸出:
9 8 7 2
6 7 5 3
3 6 8 7
8 6 5 3

來源:
2011年西北工業大學計算機研究生機試真題

 


 

#include<stdio.h>
#include<limits.h>
int a[20][20];
void Swap(int &a,int &b)
{
    int t;
    t=a;
    a=b;
    b=t;
}
void Change(int x,int y,int n)
{
     int i;
     for(i=0;i<n;i++)
     {
       Swap(a[x][i],a[y][i]);
     }
}
void Found(int x,int n)
{
     int i,flag=-1,max=a[x][x];
     for(i=x;i<n;i++)
     {
       if(a[i][x]>max) 
       {
          max=a[i][x];
          flag=i;
       }
     }
     if(flag!=-1)
     Change(x,flag,n);
}
int main()
{
    int i,j,n;
    while(scanf("%d",&n)!=EOF)
    {
       for(i=0;i<n;i++)
       for(j=0;j<n;j++)
       scanf("%d",&a[i][j]);
       for(i=0;i<n;i++)
       Found(i,n);
       for(i=0;i<n;i++)
       {
         for(j=0;j<n;j++)
         {
           printf("%d",a[i][j]);
           if(j!=n-1)
           printf(" ");//一定要注意空格的問題!好多人死在這
         }
         printf("\n");
       }
    }
    return 0;
}


 

最後更新:2017-04-03 12:55:21

  上一篇:go Apache下實現禁止目錄瀏覽
  下一篇:go Android WebKit HTML主資源加載過程