5*5矩阵的检索和位置转换
2017-06-13 00:55
155 查看
题:将一个 5X5 矩阵中最大的元素放在中心,4个角分别放在4个最小的元素(顺序为从左到右,从上到下依次从小到大排序),写一个函数实现,并用main函数调用。#include <stdio.h>
int main()
{
void change(int *p);
int a[5][5],*p,i,j;
printf("enter 35 number: \n"); //提示输入二维数组各元素。
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
p=&a[0][0]; //使p指向二维数组首地址。
change(p); //调用函数
printf("after changed: \n");
for(i=0;i<5;i++) //输出已交换的二维数组
{
for(j=0;j<5;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
void change(int *p) //交换函数
{
int i,j,temp;
int *pmax,*pmin;
pmax=p;
pmin=p;
for(i=0;i<5;i++)
for(j=0;j<5;j++) //对二维数组遍历,找到最大值和最小值
{
if(*pmax < *(p+5*i+j)) pmax = p+5*i+j;
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;
printf("第一小:%d\n",*p);
pmin=p+1;
for(i=0;i<5;i++) //找第二小值
for(j=0;j<5;j++)
if(((p+5*i+j)!=p)&&(*pmin>*(p+5*i+j))) pmin=p+5*i+j;
temp=*pmin;
*pmin=*(p+4);
*(p+4)=temp;
printf("第二小:%d\n",*(p+4));
pmin=p+1;
for(i=0;i<5;i++) //找第三小值
for(j=0;j<5;j++)
if(((p+5*i+j)!=(p+4))&&((p+5*i+j)!=p)&&(*pmin>*(p+5*i+j))) pmin=p+5*i+j;
temp=*pmin;
*pmin=*(p+20);
*(p+20)=temp;
printf("第三小:%d\n",*(p+20));
pmin=p+1;
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=p+5*i+j;
temp=*pmin;
*pmin=*(p+24);
*(p+24)=temp;
printf("第四小:%d\n",*(p+24));
}
相关文章推荐
- osg 矩阵转换后,获取矩阵中模型的位置
- 位置信息类API调用的代码示例合集:中国省市区查询、经纬度地址转换、POI检索等
- google Map api地理位置坐标转换
- 编写程序,测试字符串“你好,欢迎来到Java世界”的长度,将字符串的长度转换成字符串进行输出,并对其中的“Java”四个字母进行截取,输出截取字母以及它在字符串中的位置。
- 向量坐标转换、旋转矩阵以及视图转换
- 第五章 数组和广义表(3)三元组矩阵转换
- java:图像(BufferedImage)色彩空间转换(灰度)暨获取图像矩阵数据byte[](sRGB/gray)
- 一个百度定位例子,把自己的经纬度转换为具体位置
- 实现坐标转换--不同地理位置系统转换入门
- 经纬度与位置信息的转换
- JAVA--第五周实验--任务6--封装一类矩阵对象,完成矩阵中数据的位置变换、加法、乘法的功能
- 使用Lucene-Spatial实现集成地理位置的全文检索
- 微信公众号开发地理位置坐标的转换
- 调用高德的接口,地理位置和经纬度相互转换
- 旋转矩阵、四元数和欧拉角之间的转换——Matlab
- python与perl的矩阵转换及多样品的PCA
- python 列表,数组,矩阵两两转换tolist()
- Tomcat将JSP转换为Servlet.java和编译.class文件的所在位置
- 微信公众号开发地理位置坐标的转换
- matlab 矩阵元素表示方法转换 A(a) to A(x,y)