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;
}

Problem B: C语言习题 矩阵元素变换相关推荐

  1. Problem G: C语言习题 医生值班

    Problem G: C语言习题 医生值班 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 847  Solved: 102 [Submit][Stat ...

  2. Problem B: C语言习题 学生成绩输入和输出

    Problem B: C语言习题 学生成绩输入和输出 Description 编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据,每个学生的数据包括num(学号).name(姓名 ...

  3. MATLAB:矩阵 矩阵的秩,矩阵的逆矩阵,矩阵的转置,矩阵每个元素减一,矩阵元素变换

    1.矩阵 A=[1,2,3;4,5,6;7,8,9]/A=[1 2 3;4 5 6;7 8 9](分号与空格用于区分每行之间的元素,分号区分行) 2.矩阵每个元素减一 B=A-1 3.矩阵元素变换 需 ...

  4. c语言编程矩形法定积分例题,Problem E: C语言习题 矩形法求定积分

    非优秀的程序员常常把空间和时间消耗殆尽,优秀的程序员则总是有足够的空间和时间去完成编程任务,而且配合近乎完美. Description 写一个用矩形法求定积分的通用函数,分别求 (说明: sin,co ...

  5. C语言实验——矩阵下三角元素之和 (sdut oj)

    C语言实验--矩阵下三角元素之和 Time Limit: 1000MS  Memory Limit: 65536KB Problem Description 输入一个正整数n(1<=n<= ...

  6. C语言求矩阵的逆(高斯法)

    初等变换法是常用的矩阵求逆方法之一 相对于伴随法,初等行变换法有着较低的时间复杂度,可以进行相对高维的矩阵运算,但同时也会损失一点点精度. 伴随法可参考之前的博客:C语言求矩阵的逆(伴随法) 目录 数 ...

  7. c语言矩阵的逆的程序,C语言求矩阵的逆矩阵

    <C语言求矩阵的逆矩阵>由会员分享,可在线阅读,更多相关<C语言求矩阵的逆矩阵(12页珍藏版)>请在人人文库网上搜索. 1.C语言求矩阵的逆矩阵班级: 自动化1604小组成员: ...

  8. 生信人的20个R语言习题的答案

    这是生信技能树关于生信人的20个R语言习题的答案: 1 安装R包 数据包: ALL, CLL, pasilla, airway 软件包:limma,DESeq2,clusterProfiler 工具包 ...

  9. 生信学习——生信人的20个R语言习题(上)(附详细答案解读)

    题目目录 1. 安装一些R包. 2. 了解ExpressionSet对象,比如CLL包里面就有data(sCLLex),找到它包含的元素,提取其表达矩阵(使用exprs函数),查看其大小. 3. 了解 ...

最新文章

  1. configure: error: newly created file is older than distributed files!
  2. CODING 受邀参加《腾讯全球数字生态大会》
  3. ios 代码设置控件宽高比_ios-自动布局以保持视图大小比例
  4. 第 37 章 ACOS - CLI
  5. applicationContext.xml详解
  6. 华为模拟器如何实现不同Vlan不同网段之间的互通
  7. JAVA梅森旋转随机算法,C语言实现梅森旋转算法
  8. python创建字符串数组_python – 如何为多处理初始化字符串数组
  9. 《淘宝网开店 进货 运营 管理 客服 实战200招》——1.11 开店前要做好调查,预测市场...
  10. 软件开发中 前台、中台、后台英文_中台为什么这么火?
  11. MATLAB函数unidrnd简介
  12. 云计算是什么,阿里云提供哪些云服务
  13. Spring Cloud 微服务速成
  14. Python中字符串前“b”,“r”,“u”,“f”的作用
  15. Android预置默认输入法
  16. 计算机ppt用快捷键,计算机_电脑操作快捷键大全祥解.ppt
  17. TunesKit Video Cutter for Mac(视频分割编辑工具)
  18. excel中文件合并F9键
  19. 大数据之数仓基石Hive3.1.2实战
  20. 大数据学习之Flink环境搭建+提交任务方式

热门文章

  1. linux 升级mysql版本 lamp_Linux 下安装 LAmp及配置
  2. 拙见之drawPath()与fillPath
  3. C语言 全局变量 - C语言零基础入门教程
  4. Python for循环 - Python零基础入门教程
  5. BugkuCTF-MISC题隐写
  6. php 实现 model层,Thinkhphp5控制器调用的Model层的方法总结
  7. java缩写_Java学习-Java缩写词的意思
  8. python金融数据怎么获取_class类怎样在python中获取金融数据?
  9. 电脑摄像头未能创建连接服务器,Win7中摄像头提示未能创建视频预览错误怎么办...
  10. android是语言吗,android – 内容描述应该是多种语言吗?