Problem B: C语言习题 矩阵元素变换

Problem B: C语言习题 矩阵元素变换

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 942  Solved: 558
[Submit][Status][Web Board]

Description

将一个n×n(2<n<10,n为奇数)的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(按从左到右、从上到下顺序依次从小到大存放),写一
函数实现。用main函数调用。

Input

输入n和矩阵中的每个元素

Output

变换后的矩阵

Sample Input

5
25 13 9 5 1
16 17 18 19 6
15 24 4 20 7
14 23 22 21 8
2 12 11 10 3

Sample Output

1 13 9 5 2 
16 17 18 19 6 
15 24 25 20 7 
14 23 22 21 8 
3 12 11 10 4 

HINT

主函数已给定如下,提交时不需要包含下述主函数



/* C代码 */

int main()

{

    void change(int *,int );

    int **a,*p,i,j;

    int n;

    scanf("%d",&n);

    p=(int*)malloc(n*n*sizeof(int));

    a=(int**)malloc(n*sizeof(int *));

    for(i=0; i<n; i++)

        a[i]=p+n*i;

    for (i=0; i<n; i++)                     //输入矩阵

        for (j=0; j<n; j++)

            scanf("%d",&a[i][j]);

    change(p,n);                              //调用函数,实现交换

    for (i=0; i<n; i++)                    //输出已交换的矩阵

    {

        for (j=0; j<n; j++)

            printf("%d ",a[i][j]);

        printf("\n");

    }

    free(p);

    free(a);

    return 0;

}



/* C++代码 */



int main()

{

    void change(int *,int );

    int **a,*p,i,j;

    int n;

    cin>>n;

    p=new int[n*n];

    a=new int*[n];

    for(i=0; i<n; i++)

        a[i]=p+n*i;

    for (i=0; i<n; i++)                     //输入矩阵

        for (j=0; j<n; j++)

            cin>>a[i][j];

    change(p,n);                           //调用函数,实现交换

    for (i=0; i<n; i++)                    //输出已交换的矩阵

    {

        for (j=0; j<n; j++)

            cout<<a[i][j]<<" ";

        cout<<endl;

    }

    delete []p;

    delete []a;

    return 0;

}


#include<stdio.h>
#include<stdlib.h>
void change(int *p,int n)
{int max=0,maxj,m1=99,m2=99,m3=99,min=99,minj,m1j,m2j,m3j,x;int t;for (x=0; x<n*n; x++)if(*(p+x)>max){max=*(p+x);maxj=x;}t=*(p+maxj);*(p+maxj)=*(p+(n*n)/2);*(p+(n*n)/2)=t;for (x=0; x<n*n; x++)if(*(p+x)<min){min=*(p+x);minj=x;}t=*(p+minj);*(p+minj)=*(p+0);*(p+0)=t;for (x=0; x<n*n; x++)if(*(p+x)>min&&*(p+x)<m1){m1=*(p+x);m1j=x;}t=*(p+m1j);*(p+m1j)=*(p+(n-1));*(p+(n-1))=t;for (x=0; x<n*n; x++)if(*(p+x)>m1&&*(p+x)<m2){m2=*(p+x);m2j=x;}t=*(p+m2j);*(p+m2j)=*(p+n*(n-1));*(p+n*(n-1))=t;for (x=0; x<n*n; x++)if(*(p+x)>m2&&*(p+x)<m3){m3=*(p+x);m3j=x;}t=*(p+m3j);*(p+m3j)=*(p+n*n-1);*(p+n*n-1)=t;}
int main()
{void change(int *,int );int **a,*p,i,j;int n;scanf("%d",&n);p=(int*)malloc(n*n*sizeof(int));a=(int**)malloc(n*sizeof(int *));for(i=0; i<n; i++)a[i]=p+n*i;for (i=0; i<n; i++)for (j=0; j<n; j++)scanf("%d",&a[i][j]);change(p,n);for (i=0; i<n; i++){for (j=0; j<n; j++)printf("%d ",a[i][j]);printf("\n");}free(p);free(a);return 0;
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Problem D: 删出多余的空格

Problem D: 删出多余的空格 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 667 Solved: 308[Submit][Status][Web Board]Description 小平在给弟弟检查英语作业时时&#xff0c;发现每个英语句子单词之间的空格个数不等&#xff0c;请你编程帮他把句子中多余的空格去掉&am…

Problem D: 顺序串的基本运算

Problem D: 顺序串的基本运算 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 73 Solved: 28[Submit][Status][Web Board]Description 编写一个程序&#xff0c;实现顺序串的各种基本运算&#xff0c;主函数已给出&#xff0c;请补充每一种方法。 1、建立串s"abcdefgh…

骨牌铺方格

骨牌铺方格 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 46495 Accepted Submission(s): 22470 Problem Description在2n的一个长方形方格中,用一个1 2的骨牌铺满方格,输入n ,输出铺放方案的总数.例如n3时…

递归思想完成n皇后问题

已经很长时间不敲代码了&#xff0c;感觉自己越来与颓废&#xff0c;所以现在又想做回一名苦逼的程序员&#xff0c;开启自己的代码之路。 我是根据视频敲的&#xff0c;没有题目&#xff0c;先看个四皇后问题吧。 所谓4皇后问题就是求解如何在44的棋盘上无冲突的摆放4个皇后棋…

POJ1163 数字三角形

1.题目信息&#xff08;http://poj.org/problem?id1163&#xff09; The TriangleTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 30397 Accepted: 17973 Description 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5(Figure 1) Figure 1 shows a number tri…

virtualbox的USB识别

VirtualBox识别USB教程 作者&#xff1a;Vincent June 13, 2017 在Virtualbox虚拟机配置面板中打开USB设备选项&#xff0c;分别勾选上“启动USB控制器”“启用usb2.0控制器”选项&#xff0c;如果有错误去https://www.virtualbox.org/wiki/Downloads 下载相应版本的插件包&a…

ubuntu实现简单的划词工具

ubuntu实现简单的划词工具 由于ubuntu下面没有比较好用的划词翻译工具&#xff0c;而且本人比较喜欢有道词典&#xff0c;虽然ubuntu下有deepin版本的有道词典包&#xff0c;可是总是会有bug&#xff0c;卡死等等。所以自己参考别人写了一个小工具&#xff0c;涉及shell和pyth…

动态规划进阶题目之滑雪

Problem F: 动态规划进阶题目之滑雪 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 4 Solved: 3[Submit][Status][Web Board]Description Michael喜欢滑雪百这并不奇怪&#xff0c; 因为滑雪的确很刺激。可是为了获得速度&#xff0c;滑的区域必须向下倾斜&#xff0c;而且当…

修改win10我的文档下载等移动别处

win10移动我的文档&#xff0c;下载等到其他盘符办法 解决办法 1.选择我的文档&#xff0c;鼠标右键选择属性&#xff0c;在工具栏选择位置&#xff0c;然后选择想移动到哪里的盘符即可&#xff0c;如图&#xff1a;2.操作完后选择应用->确定&#xff0c;就这么简单。

神奇的口袋

2755:神奇的口袋查看 提交 统计 提示 提问总时间限制: 10000ms 内存限制: 65536kB描述有一个神奇的口袋&#xff0c;总的容积是40&#xff0c;用这个口袋可以变出一些物品&#xff0c;这些物品的总体积必须是40。John现在有n个想要得到的物品&#xff0c;每个物品的体积分别是a…

Ubuntu16.04LTS修改开机动画

ubuntu16.04LTS修改开机动画 ubuntu自带的开机动画实在是很不满美观&#xff0c;但是又不想重写&#xff0c;怎么办&#xff1f; 接下来交你们一招。 1.开机动画文件夹 Ubuntu14.04的开机动画在/usr/share/plymouth文件夹内 2.下载开机动画 两种方式&#xff1a; 从Ubun…

Qt的Xml操作QDomDocument

Qt的Xml操作QDomDocument Qt对于Xml的支持是很好的&#xff0c;一些我们需要的操作应有尽有&#xff0c;下面简单介绍一下怎样使用。主要有以下几点使用&#xff1a; 写xml到文件读xml添加节点到xml删除xml中某节点信息修改xml中某节点信息 准备工作 .pro加入QT xml需要in…

2815:城堡问题

2815:城堡问题 查看提交统计提示提问 总时间限制: 1000ms 内存限制: 65536kB描述1 2 3 4 5 6 7 #############################1 # | # | # | | ######---#####---#---#####---#2 # # | # # # # ##---#####---#####---#####---#3 # …

冒泡排序法函数

文章目录冒泡排序法的函数实现使用教程冒泡排序法的函数实现 话不多说上代码&#xff0c;拿去直接用。 // 冒泡排序函数 /* * brief sort * param array为数组名称&#xff0c;length为数组的长度&#xff0c;order为1或0,1代表从小到大排序 * 0代表从大到小排序…

boost序列化(Serialization)

本文章转载自 http://m.blog.csdn.net/zj510/article/details/8105408 程序开发中&#xff0c;序列化是经常需要用到的。像一些相对高级语言&#xff0c;比如JAVA, C#都已经很好的支持了序列化&#xff0c;那么C呢&#xff1f;当然一个比较好的选择就是用Boost&#xff0c;这个…

java基础经典练习题

【程序1】 题目&#xff1a;古典问题&#xff1a;有一对兔子&#xff0c;从出生后第3个月起每个月都生一对兔子&#xff0c;小兔子长到第三个月后每个月又生一对兔子&#xff0c;假如兔子都不死&#xff0c;问每个月的兔子总数为多少&#xff1f; //这是一个菲波拉契数列问题 p…

ubuntu下wps不能输入中文

ubuntu下wps不能输入中文 原因是因为fcitx环境的原因&#xff0c;想了解fcitx的可以看这篇文章&#xff0c;链接。 使用脚本解决 将下面的脚本复制到新建的文件中&#xff0c;chmod加权限&#xff0c;然后执行即可。 #! /bin/bash #--------------------------------------…

常见的几种内排序算法以及实现(C语言)(转)

所有未排序的数组是经过检查合法的主要的内排序包括冒泡、插入、希尔、堆排序、归并、快速、桶排序等其C语言实现的源文件下载地址&#xff1a;http://download.csdn.net/detail/mcu_tian/9530227冒泡排序冒泡排序应该是排序中最简单的算法了主要思路如下&#xff1a;1&#xf…

常见编程命名缩写

命名缩写 通用缩写翻译控件缩写翻译addressaddr地址calendarcdr日历applicationapp应用程序messageDialogmsgdlg消息框asynchronizationasyn异步drawerdrw抽屉averageavg平均数buttonGroupbtngrp按钮分组bitmapbmp位图checkBoxchk复选框bufferbuf缓冲区containercntr容器chara…

funCode课程实训(C++ )

funcode是一个简单的游戏制作引擎&#xff0c;适合c初学者操作&#xff0c;可以帮助初学者更好的了解c环境&#xff0c;以及各种函数的实现&#xff0c;本学期我们用funcode作为C最后的课程设计&#xff0c;所以我就使用funcode制作一个打地鼠的小游戏。以下是对这个小程序的描…