将一个5×5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下顺序依 40

将一个5×5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下顺序依次从小到大存放),编写一个函数实现之,用main函数调用。... 将一个5×5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下顺序依次从小到大存放),编写一个函数实现之,用main函数调用。 展开
 我来答
PLCokeklc
2016-05-14 · TA获得超过553个赞
知道小有建树答主
回答量:500
采纳率:82%
帮助的人:273万
展开全部
#include<stdio.h>
#define inf (1<<29)
int main()
{
    int a[11][11],i,d,j,x[11],m[11],k[11];
    printf("输入一个5x5矩阵:\n");
    for(i=0; i<5; i++)
        for(j=0; j<5; j++)
            scanf("%d",&a[i][j]);


    for(i=0; i<5; i++)
    {
        m[i]=k[i]=0;
        x[i]=inf;
    }
    x[4]=-1;
    for(i=0; i<5; i++)
        for(j=0; j<5; j++)
        {
            if (a[i][j]<x[0])
            {
                x[3]=x[2];
                m[3]=m[2];
                k[3]=k[2];
                x[2] = x[1];
                m[2]=m[1];
                k[2]=k[1];
                x[1] = x[0];
                m[1]=m[0];
                k[1]=k[0];
                x[0] = a[i][j];
                m[0]=i;
                k[0]=j;
            }
            else if (a[i][j]<x[1])
            {
                x[3]=x[2];
                m[3]=m[2];
                k[3]=k[2];
                x[2] = x[1];
                m[2]=m[1];
                k[2]=k[1];
                x[1] = a[i][j];
                m[1]=i;
                k[1]=j;
            }
            else if (a[i][j]<x[2])
            {
                x[3]= x[2];
                m[3]=m[2];
                k[3]=k[2];

                x[2]= a[i][j];
                m[2]=i;
                k[2]=j;
            }
            else if (a[i][j]<x[3])
            {
                x[3]= a[i][j];
                m[3]=i;
                k[3]=j;
            }
            if(x[4]<a[i][j])//找最大
            {
                x[4]=a[i][j];
                m[4]=i;
                k[4]=j;
            }
        }
    d=a[2][2];
    a[2][2]=x[4];
    a[m[4]][k[4]]=d;

    d=a[0][0];
    a[0][0]=x[0];
    a[m[0]][k[0]]=d;

    d=a[0][4];
    a[0][4]=x[1];
    a[m[1]][k[1]]=d;

    d=a[4][0];
    a[4][0]=x[2];
    a[m[2]][k[2]]=d;

    d=a[4][4];
    a[4][4]=x[3];
    a[m[3]][k[3]]=d;

    for(i=0; i<5; i++)
    {
        for(j=0; j<5; j++)
            printf("%d ",a[i][j]);
        printf("\n");
    }
    return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式