将一个5*5的矩阵中最大的元素放在中心,4个角分别放在4个最小的元素

将一个5*5的矩阵中最大的元素放在中心,4个角分别放在4个最小的元素

#include <stdio.h>
void sort(int (*p)[5],int n)
{    
int i,j,u,k,t,r;    
for(r=0; r<4; r++)       // 4个角分别放4个最小的元素    
{        
  u=0;        
  k=1;        
  for(i=0; i<n; i++)        
  {            
    for(j=0; j<n; j++)            
    {          
      if((r==1||r==2||r==3)&&(i==0&&j==0))               
        continue;    
      if((r==2||r==3)&&(i==0&&j==n-1))     
        continue;             
      if(r==3&&(i==n-1&&j==0))          
        continue;                
      if(p[i][j]<p[u][k])                
      {                    
        u=i;                    
        k=j;                
      }            
    }        
  }        
  if(r==0)        
  {            
  t=p[0][0];            
  p[0][0]=p[u][k];            
  p[u][k]=t;        
  }        
  if(r==1)        
  {            
  t=p[0][n-1];            
  p[0][n-1]=p[u][k];            
  p[u][k]=t;        
  }        
  if(r==2)        
  {            
  t=p[n-1][0];            
  p[n-1][0]=p[u][k];            
  p[u][k]=t;        
  }        
  if(r==3)        
  {            
  t=p[n-1][n-1];            
  p[n-1][n-1]=p[u][k];            
  p[u][k]=t;        
  }    
}    
k=0;     //最大的元素放在中心    
u=0;    
for(i=0; i<n; i++)    
{        
  for(j=0; j<n; j++)        
  {            
    if(p[i][j]>p[u][k])            
    {                
      u=i;                
      k=j;            
    }        
  }    
}    
t=p[n/2][n/2];    
p[n/2][n/2]=p[u][k];    
p[u][k]=t;
}
int main()
{    
int a[5][5],(*p)[5],i,j;    
p=a;        
for(i=0; i<5; i++)    
{        
  for(j=0; j<5; j++)        
  {            
    scanf("%d",&p[i][j]);        
  }    
}    
void sort(int (*p)[5],int n);    
sort(p,5);    
for(i=0; i<5; i++)    
{        
  for(j=0; j<5; j++)        
  {            
    printf("%3d",p[i][j]);        
  }        
printf("\n");    
}    
return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hhhhhh liu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值