数据结构求一个矩阵的马鞍点
2016-04-21 20:31
447 查看
马鞍点就是本行中最小的但是本列中最大的数
如图:
代码:
#include <iostream>
#include<malloc.h>
#include<cstdio>
using namespace std;
#define M 4
#define N 4
int minn[M],maxx
;
void MinMax(int A[M]
)///M行中最小,N列中最大
{
int i,j;
bool have=false;
for(i=0; i<M; i++) ///求出每行最小数,存在minn[0,,,M-1]中
{
minn[i]=A[i][0];
for(j=1; j<N; j++)
if(minn[i]>A[i][j])
minn[i]=A[i][j];
}
for(j=0; j<N; j++) ///求出每列最大数,存在maxx[0,,,N-1]中
{
maxx[j]=A[0][j];
for(i=1; i<M; i++)
if(maxx[j]<A[i][j])
maxx[j]=A[i][j];
}
for(i=0; i<M; i++)
for(j=0; j<N; j++)
if(minn[i]==maxx[j])///找到马鞍点
{
printf("A[%d][%d]=%d",i,j,A[i][j]);
have=true;
}
if(!have)
printf("没有马鞍点\n");
}
int main()
{
int A[M]
= {{9,7,6,8},{20,26,22,25},{28,36,25,30},{12,4,2,6}};
printf("A矩阵:\n");
for(int i=0; i<M; i++)
{
for(int j=0; j<N; j++)
printf("%4d",A[i][j]);
printf("\n");
}
printf("矩阵中的马鞍点:\n");
MinMax(A);
printf("\n");
printf("输出每行中最小的数\n");
for(int i=0; i<M; i++)
printf("%4d",minn[i]);
printf("\n");
printf("输出每列中最大的数\n");
for(int i=0; i<N; i++)
printf("%4d",maxx[i]);
printf("\n");
return 0;
}
如图:
代码:
#include <iostream>
#include<malloc.h>
#include<cstdio>
using namespace std;
#define M 4
#define N 4
int minn[M],maxx
;
void MinMax(int A[M]
)///M行中最小,N列中最大
{
int i,j;
bool have=false;
for(i=0; i<M; i++) ///求出每行最小数,存在minn[0,,,M-1]中
{
minn[i]=A[i][0];
for(j=1; j<N; j++)
if(minn[i]>A[i][j])
minn[i]=A[i][j];
}
for(j=0; j<N; j++) ///求出每列最大数,存在maxx[0,,,N-1]中
{
maxx[j]=A[0][j];
for(i=1; i<M; i++)
if(maxx[j]<A[i][j])
maxx[j]=A[i][j];
}
for(i=0; i<M; i++)
for(j=0; j<N; j++)
if(minn[i]==maxx[j])///找到马鞍点
{
printf("A[%d][%d]=%d",i,j,A[i][j]);
have=true;
}
if(!have)
printf("没有马鞍点\n");
}
int main()
{
int A[M]
= {{9,7,6,8},{20,26,22,25},{28,36,25,30},{12,4,2,6}};
printf("A矩阵:\n");
for(int i=0; i<M; i++)
{
for(int j=0; j<N; j++)
printf("%4d",A[i][j]);
printf("\n");
}
printf("矩阵中的马鞍点:\n");
MinMax(A);
printf("\n");
printf("输出每行中最小的数\n");
for(int i=0; i<M; i++)
printf("%4d",minn[i]);
printf("\n");
printf("输出每列中最大的数\n");
for(int i=0; i<N; i++)
printf("%4d",maxx[i]);
printf("\n");
return 0;
}
相关文章推荐
- C#数据结构之顺序表(SeqList)实例详解
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#数据结构之单链表(LinkList)实例详解
- 数据结构之Treap详解
- 用C语言举例讲解数据结构中的算法复杂度结与顺序表
- C#数据结构之堆栈(Stack)实例详解
- C#数据结构之双向链表(DbLinkList)实例详解
- JavaScript数据结构和算法之图和图算法
- Java数据结构及算法实例:冒泡排序 Bubble Sort
- Java数据结构及算法实例:插入排序 Insertion Sort
- Java数据结构及算法实例:考拉兹猜想 Collatz Conjecture
- java数据结构之java实现栈
- java数据结构之实现双向链表的示例
- Java数据结构及算法实例:选择排序 Selection Sort
- Java数据结构及算法实例:朴素字符匹配 Brute Force
- Java数据结构及算法实例:汉诺塔问题 Hanoi
- Java数据结构及算法实例:快速计算二进制数中1的个数(Fast Bit Counting)