灰原赛高 2021-08-06 21:15 采纳率: 100%
浏览 84
已结题

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

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

  • 写回答

1条回答 默认 最新

  • 关注

    可以先排序,再把前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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月17日
  • 已采纳回答 8月9日
  • 创建了问题 8月6日

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了