首页 > 编程语言 >C++——将一个5x5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(按从左到右、从上到下顺序依次从小到大存放) ,写一函数实现。用main函数调用。用指针或引用方法处理。

C++——将一个5x5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(按从左到右、从上到下顺序依次从小到大存放) ,写一函数实现。用main函数调用。用指针或引用方法处理。

时间:2024-10-31 14:46:44浏览次数:6  
标签:tmp 5x5 idx int 元素 函数调用 col arry row

没注释的源代码

#include<iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
void transform(int *arry, int col_row);
int main()
{
    int arry[5][5];
    cout<<"Please enter a 5x5 matrix:"<<endl;
    for (int i=0;i<5;i++)
    {
        for (int j=0;j<5;j++)
        {
            cin>>arry[i][j];
        }
    }
    transform(*arry, 5);
    cout<<"now matrix:"<<endl;
    for (int i=0;i<5;i++)
    {
        for (int j=0;j<5;j++)
        {
            cout<<arry[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
}
void transform(int *arry,int col_row)
{
    int max =arry[0],max_idx;
    for (int i=0;i<col_row*col_row;i++)
    {
        if (max < arry[i]) max=arry[i];
        max_idx=i;
    }
    int center_idx=(col_row*col_row)/2;
    int tmp=arry[center_idx];arry[center_idx]=arry[max_idx];arry[max_idx]=tmp;
    int min_idx[4];
    int i,j,k;
    for (i=0;i<4;i++)
    {
        int min_tmp=arry[col_row*col_row-1];
        for (j=0;j<col_row*col_row;j++)
        {
            for (k=0;k<i;k++)
            {
                if (j==min_idx[k]) break;
            }
            if(k!=i) continue;
            if(min_tmp>arry[j])
            {
                min_tmp=arry[j];
                min_idx[i]=j;
            }
        }
    }
    int change_idx[4];
    change_idx[0]=0;
    change_idx[1]=col_row-1;
    change_idx[2]=col_row*(col_row-1);
    change_idx[3]=(col_row*col_row)-1;
    for (int i=0;i<4;i++)
    {
        int tmp;
        tmp=arry[change_idx[i]];
        arry[change_idx[i]]=arry[min_idx[i]];
        arry[min_idx[i]] = tmp;
    }
}
 

标签:tmp,5x5,idx,int,元素,函数调用,col,arry,row
From: https://blog.csdn.net/2303_80770781/article/details/143268215

相关文章

  • Leetcode刷题Python之3165.不包含相邻元素的子序列的最大和
    提示:利用线段树解决不包含相邻元素的子序列最大和问题。文章目录一、题目描述示例二、解题思路1.思路分析2.线段树的状态设计3.线段树的操作三、代码实现代码详细解释四、总结时间复杂度分析一、题目描述给定一个整数数组nums和一个二维数组queries,其中q......
  • C++算法练习-day27——347.前k个高频元素
    题目来源:.-力扣(LeetCode)题目思路分析题目:找出数组中出现频率最高的前K个元素。这个问题要求我们从给定的数组nums中找出频率最高的前k个元素。这通常意味着我们需要统计每个元素的出现次数,然后根据这些次数进行排序,并提取前k个元素。以下是解决这个问题的思路:统计频率:首......
  • 2024-10-30:或值至少 K 的最短子数组 I。用go语言,给定一个非负整数数组 nums 和一个整
    2024-10-30:或值至少K的最短子数组I。用go语言,给定一个非负整数数组nums和一个整数k,我们需要判断数组中是否存在一个最短的非空子数组,使得该子数组所有元素的按位或(OR)运算结果至少为k。如果找到了这样的子数组,返回其长度;如果不存在,则返回-1。输入:nums=[1,2,3],k=2。......
  • 代码随想录——栈与队列8-前K个高频元素
    法一、用数组排序思路用map保存元素和频率关系将元素和频率的键值对pair作为vector的基本元素,以频率为准进行从大到小的排序——O(nlogn)输出前K个pair的first,即数字本身代码classSolution{public:std::vector<int>topKFrequent(std::vector<int......
  • CSS中为特定的元素设置背景图片(Top1,Top1,Top3)
    &:nth-child(1).imgspan{background:url(/static/home/hot/top1.png)no-repeat;background-size:100%auto;}上端代码使用了:nth-child()伪类选择器来选择父元素下的特定子元素,并对这些子元素内部的.imgspan设置背景图片和背景尺寸。&:nth-chi......
  • 函数调用寄存器及栈帧结构
    函数调用X86下,遵循被调用者使用规则,函数在调用子函数之前,保存相关寄存器的内容。函数调用时,参数先入栈,接着为返回地址入栈,BP寄存器入栈、再接着就是子函数的局部变量之类的了。常用寄存器栈帧结构函数调用时栈帧结构......
  • PlayWright.Net EvaluateAsync定位选择所以子元素
    playwright=awaitPlaywright.CreateAsync();varuserDataDir=$"{Directory.GetCurrentDirectory()}\\UserData";varcontext=awaitplaywright.Chromium.LaunchPersistentContextAsync(userDataDir,newBrowserTy......
  • 代码随想录算法训练营第十一天|leetcode150. 逆波兰表达式求值、leetcode239. 滑动窗
    1leetcode150.逆波兰表达式求值题目链接:150.逆波兰表达式求值-力扣(LeetCode)文章链接:代码随想录视频链接:栈的最后表演!|LeetCode:150.逆波兰表达式求值_哔哩哔哩_bilibili自己的思路:这是一道有思路,但是思路并不多的题目,就是我会觉得是先将数据进行添加,然后对于符号通过倒......
  • C语言经典20例(输入数组元素,将其反转并输出)
    1.定义数组:首先定义一个数组来存储输入的元素。2.输入元素:使用循环结构(如for循环)来从用户那里获取数组元素。3.反转数组:通过交换数组两端的元素来实现反转,这通常需要一个循环,该循环从数组的两端开始,向中间移动。4.输出反转后的数组:再次使用循环结构来打印反转后的数组。......
  • 《DNK210使用指南 -CanMV版 V1.0》第三十三章 image元素绘制实验
    第三十三章image元素绘制实验1)实验平台:正点原子DNK210开发板2)章节摘自【正点原子】DNK210使用指南-CanMV版V1.03)购买链接:https://detail.tmall.com/item.htm?&id=7828013987504)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/k210/ATK-DNK210.html5)......