一、 实验目的
1. 熟悉数组的结构
2. 掌握矩阵的压缩存储
3. 能够对数组和矩阵的压缩存储进行运算
二、 实验内容
1. 若在矩阵Am×n中存在一个元素A[i][j],其满足A[i][j]是第i行元素中最小值,且又是第j列元素中最大值,则称此元素为该矩阵的一个马鞍点。用二维数组存储矩阵Am×n ,设计算法求出矩阵中所有马鞍点。
#include<iostream>
using namespace std;
const int size=100;
void man(int * a,int m,int n) //求马鞍点
{
int i,j,p,q;
int P[size],Q[size]; //P存储每一行的最小值,Q存储每一列的最大值
for(i=0;i<m;i++)
{
p=0;
for(j=0;j<n;j++)
{
if((*(a+n*i+j))<(*(a+n*i+p)))p=j;
}
P[i]=p; //P存储每一行的最小值
}
for(j=0;j<n;j++)
{
q=0;
for(i=0;i<m;i++)
{
if((*(a+n*i+j))>(*(a+n*q+j)))q=i;
}
Q[j]=q; //Q存储每一列的最大值