永发信息网

C++矩阵的设计

答案:1  悬赏:10  手机版
解决时间 2021-07-22 09:18
  • 提问者网友:末路
  • 2021-07-21 10:09

有一个5*5的矩阵,编写一个函数, 函数原形是:void change(int *p),p为数组名(指针);函数将矩阵最大元素的值放在矩阵中心,四个角落分别放四个最小的元素(顺序为从左到右、从上到下存放)。

最佳答案
  • 五星知识达人网友:狂恋
  • 2021-07-21 11:19

#include<iostream>
#include<iomanip.h>
#define number 5
using namespace std;
void max_s(int (*g)[5])
{
static int times=1,rote,d=1,save[5]={0};
int i,j,max,min,t;
int i_change,j_change;
max=g[0][0];
if(times==1) {
for (i=0;i<5;i++)
for(j=0;j<5;j++)
if( *(*(g+i)+j) >max )
{ max=*(*(g+i)+j);
i_change=i;
j_change=j;
}
rote=max;
times++;
t=*(*(g+i_change)+j_change); *(*(g+i_change)+j_change)=*(*(g+2)+2); *(*(g+2)+2)=t;


}
else
{
min=rote;
for (i=0;i<5;i++)
for(j=0;j<5;j++)
if( ( *(*(g+i)+j)<min ))
if(*(*(g+i)+j)!=save[1])
if (*(*(g+i)+j)!=save[2])
if(*(*(g+i)+j)!=save[3])
if( *(*(g+i)+j)!=save[4])
{ min=*(*(g+i)+j);
i_change=i;
j_change=j;
};
save[times]=min;
if(d==1){i=0;j=0;};
if(d==2){i=0;j=4;};
if(d==3){i=4;j=0;};
if(d==4) {i=4;j=4;};

{t=*(*(g+i_change)+j_change);
*(*(g+i_change)+j_change)=*(*(g+i)+j);
*(*(g+i)+j)=t;
d++;
};
times++;
}


}


void change(int (*p)[5] )
{
int i,j,max,b[5],*g,t,r1=1,re=2;
for(i=0;i<5;i++)
max_s(p);


}
void main()
{
int a[5][5],i,j,n=1,k;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{ a[i][j]=n;
n++;
};
for(i=0;i<5;i++)
{ cout<<endl;
for(j=0;j<5;j++)
cout<<setw(4)<<a[i][j];
}
cout<<endl;
cout<<"改变后:"<<endl;
change(a);
for(i=0;i<5;i++)
{ cout<<endl;
for(j=0;j<5;j++)
cout<<setw(4)<<a[i][j];
}


}




弄的有点复杂,不过跟你题目要求差不多了。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯