将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素
2013-01-16 14:52
337 查看
/*
* 程序的版权和版本声明部分:
* Copyright (c) 2012, 烟台大学计算机学院
* All rights reserved.
* 文件名称:将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素.cpp
* 作 者:毛通
* 完成日期:2013 年 1月16 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:
* 输入描述:输入25个数
* 问题描述:
* 程序输出:“将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素”
*/
/*
运行结果:
![](http://img.my.csdn.net/uploads/201301/16/1358319429_4945.jpg)
*/
* 程序的版权和版本声明部分:
* Copyright (c) 2012, 烟台大学计算机学院
* All rights reserved.
* 文件名称:将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素.cpp
* 作 者:毛通
* 完成日期:2013 年 1月16 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:
* 输入描述:输入25个数
* 问题描述:
* 程序输出:“将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素”
*/
/* 将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(按从左到右、从上到下顺序依次从小到大存放), 写一个函数实现 */ # include <iostream> # include <iomanip> using namespace std; int main() { void change (int *p); int a[5][5],*p,i,j; cout<<"input matrix" << endl; for (i=0;i<5;i++) for (j=0;j<5;j++) cin>>a[i][j]; p=&a[0][0]; cout << "您输入的矩阵是:" <<endl; for (i=0;i<5;i++) { for (j=0;j<5;j++) cout << setw(6) <<a[i][j]; cout << endl; } change (p); cout << "now matrix" << endl; for (i=0;i<5;i++) { for (j=0;j<5;j++) cout <<setw(6)<< a[i][j]; cout << endl; } return 0; } void change (int *p) { int i,j,temp; int *pmax,*pmin; pmax=p; pmin=p; for (i=0;i<5;i++) //找最大和最小数的地址,赋给pmax和pmin for (j=0;j<5;j++) { if (*pmax < *(p+5*i+j)) pmax=p+5*i+j; //*(p+5*i+j)当*p=a[0][0]时可以实现 数组的遍历 if (*pmin > *(p+5*i+j)) pmin=p+5*i+j; }//最大最小值的地址找到了 temp =*(p+12); //将最大值与中心元素互换 *(p+12)=*pmax; *pmax=temp; temp=*p;//将最小元素与左上角元素互换 *p=*pmin; *pmin=temp; pmin=p+1; //将a[0][1]的地址赋给pmin,从该位置开始找最小的元素 for (i=0;i<5;i++) for (j=0;j<5;j++) if (((p+5*i+j)!=p)&&(*pmin>*(p+5*i+j))) //两个条件:元素小于*pmin;元素不是第一个元素 pmin =p+5*i+j; //将第二最小值的地址赋给pmin temp =*pmin;//将第二最小值与右上角元素互换 *pmin=*(p+4); *(p+4)=temp; pmin=p+1; //将a[0][1]的地址赋给pmin,从该位置开始找最小的元素 for (i=0;i<5;i++) for (j=0;j<5;j++) if (((p+5*i+j)!=p)&&((p+5*i+j)!=(p+4))&&(*pmin>*(p+5*i+j))) //两个条件:元素小于*pmin;元素不是第一个元素 pmin =p+5*i+j; //将第三最小值的地址赋给pmin temp =*pmin;//将第三最小值与右上角元素互换 *pmin=*(p+20); *(p+20)=temp; pmin=p+1; //将a[0][1]的地址赋给pmin,从该位置开始找最小的元素 for (i=0;i<5;i++) for (j=0;j<5;j++) if (((p+5*i+j)!=p)&&((p+5*i+j)!=(p+4))&&((p+5*i+j)!=(p+20))&&(*pmin>*(p+5*i+j))) //两个条件:元素小于*pmin;元素不是第一个元素 pmin=p+5*i+j; //将第四最小值的地址赋给pmin temp =*pmin;//将第四最小值与右上角元素互换 *pmin=*(p+24); *(p+24)=temp; }
/*
运行结果:
![](http://img.my.csdn.net/uploads/201301/16/1358319429_4945.jpg)
*/
相关文章推荐
- 将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下顺序依次从小到大存放),写一函数实现之。
- 习题 8.10 将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下依次从小到大存放),写一函数实现之。用main函数调用。
- 将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(对比两个程序)
- 将一个5*5的矩阵中最大的元素放在中心,4个角分别放在4个最小的元素
- 将一个5*5的矩阵中最大的元素放在中心,四个角分别放四个最小的元素(顺序从左到右,从上到下顺序依次从小到大存放),写一个函数实现之。用main函数调用。
- 将一个5*5的矩阵中最大的元素放在中心,四个角分别放四个最小的元素
- C语言:将一个5x5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素....
- 8.10 将一个5X5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下依次从小到大存放),写一函数实现之。用main函数调用。
- 5*5最大的元素放在中心,4个角分别最小的元素
- 将一个5*5 矩阵中最大的放在中间,四个角分别放最小的数据,顺序分别是左右上下,通过函数完成。
- 10.10 5*5矩阵,中间最大,4角4个最小元素
- 5*5的矩阵中最大的元素放在中心,写一个函数实现
- 5*5的矩阵中最大的元素放在中心
- 将一个5X5的矩阵中最大的元素放在中心
- 将一个5*5的矩阵中最大的元素放在…
- 将一个5*5的矩阵中最大的元素放在中...
- 求一个上三角矩阵中每一条斜线中的最大元素(L)和最小元素(S)。
- c编程:求出4×4矩阵中最大和最小元素值及其所在行下标和列下标,求出两条主对角线元素之和。
- c编程:求出4×4矩阵中最大和最小元素值及其所在行下标和列下标,求出两条主对角线元素之和。
- 数据结构第5章例题 若矩阵Am×n中存在某个元素aij满足:aij是第i行中的最小值且是第j列中的最大值,则称该元素为矩阵A的一个鞍点。试编写一个算法,找出A中的所有鞍点。