C++基础编程习题关于矩阵 然后排序

如果要输出一个5X5的矩阵,四角依次存放四个最小的数,中间位置存放最大的数,然后其他位置的元素按顺序排序,该使用怎样的思路呢,该如何编写代码呢

可以先排序,再把前4个元素和最后一个元素移动到指定位置

#include <stdio.h>
#define N 5
void swap(int *a,int *b)
{
    int t=*a;
    *a=*b;
    *b=t;
}
void sort(int *a,int n)
{
    int i,j;
    for(i=0;i<N*N;i++)
    for(j=i+1;j<N*N;j++)
    if(a[i]>a[j])
    {
        swap(&a[i],&a[j]);
    }
}
void mone(int *a,int s,int e)
{
    int i;
    if (s<e)
        for(i=s;i<e;i++)
            swap(&a[i],&a[i+1]);
    else
        for(i=s;i>e;i--)
            swap(&a[i],&a[i-1]);
 }

#include <string.h>
int main()
{
    int a[N][N];
    printf("Please enter a 5x5 matrix: \n");
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            scanf("%d", &a[i][j]);
        }
    }
    sort(a, N);
    mone(a,24,14);
    mone(a,3,24);
    mone(a,2,20);
    mone(a,1,4);
    printf("\n");
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            printf("%d ", a[i][j]);
        }
        printf("\n");
    }
    system("pause");
    return 0;
}

img

如果对你有帮助,可以给我个采纳吗,谢谢!! 点击我这个回答右上方的【采纳】按钮