矩阵元素转换

来源:互联网 发布:怎么申请退款淘宝 编辑:程序博客网 时间:2024/06/07 04:16
#include<iostream>using namespace std;void change(int *f,int a){int *x,*max,*mix;int *y,m=1,b,x1;int *str[10];max=f;for(x=f+1;x<f+a*a-1;x++){if(*x>*max) max=x;}m=*(f+(a*a-1)/2);*(f+(a*a-1)/2)=*max;*max=m;m=1;for(m=1;m<=4;m++){if(m==1) mix=f;else mix=f+1;for(y=f;y<=f+a*a-1;y++){ if(m==2&&y==f) y++; else if(m==3&&(y==f||y==f+a-1)) y++; else if(m==4&&(y==f||y==f+a-1||y==f+a*a-a)) y++;           if(*mix>*y) mix=y;}if(m==1) {x1=*f;*f=*mix;*mix=x1;}else if(m==2){x1=*(f+a-1);*(f+a-1)=*mix;*mix=x1;}else if(m==3){x1=*(f+a*a-a);*(f+a*a-a)=*mix;*mix=x1;}else {            x1=*(f+a*a-1);*(f+a*a-1)=*mix;*mix=x1;}}}int main(){    void change(int *,int );    int **a,*p,i,j;    int n;    cin>>n;    p=new int[n*n];    a=new int*[n];    for(i=0; i<n; i++)        a[i]=p+n*i;    for (i=0; i<n; i++)        for (j=0; j<n; j++)            cin>>a[i][j];    change(p,n);    for (i=0; i<n; i++)    {        for (j=0; j<n; j++)            cout<<a[i][j]<<" ";        cout<<endl;    }    delete []p;    delete []a;    return 0;}

1 0