c++语言编马鞍点原理,C++程序求鞍点

满意答案

00e27ab806e4881f8254fe7ae8741834.png

chenl349627

2014.05.23

00e27ab806e4881f8254fe7ae8741834.png

采纳率:41%    等级:13

已帮助:11744人

#include

using namespace std;

int flag=0;

class Saddle_point{

private:

int a[4][4];//存放二维数组元素。

int b[4][4];//存放二维数组中的鞍点值。

int num;//存放鞍点个数。

public:

Saddle_point(int data[][4]);

void process();//求数组a所有鞍点

void print();//输出数组a,及所有鞍点

};

Saddle_point::Saddle_point(int data[4][4])

{

int i,j;

for(i=0;i<4;i++)

for(j=0;j<4;j++)

{ a[i][j]=data[i][j];

b[i][j]=0;

}

num=0;

}

void Saddle_point::process()

{

int max,min;

int i,j,t,m=0,n=0;

for(i=0;i<4;i++)

{

t=i;//保存每次的行值,以便下次循环不要从头开始

for(max=a[i][0],j=0;j<4;j++)

if(max

max=a[i][j];//求行的最大值

for(j=0;j<4;j++)

{

for(min=a[i][j],i=0;i<4;i++)//求列的最小值

if(min>a[i][j])

min=a[i][j];

i=t;

if((a[i][j]==max)&&(a[i][j]==min))//判断最大值与列最小值是否相等

{

b[m][n]=a[i][j];//把鞍点赋给数组b

m++;

n++;

num++;

flag++;

}

}

}

}

void Saddle_point::print()

{

int i,j;

cout<<"数组a的元素如下所示: "<

for(i=0;i<4;i++)

{ for(j=0;j<4;j++)

{

cout<<" "<

}

cout<

}

cout<<"数组b的元素如下所示: "<

for(i=0;i<4;i++)

{ for(j=0;j<4;j++)

{

cout<<" "<

}

cout<

}

cout<<"所有鞍点的总数为: "<

if(flag==0)

{

cout<<"没有鞍点: "<

}

}

int main()

{

int c[][4]={2,6,3,4,5,6,5,5,7,6,5,7,1,9,2,7};

Saddle_point fun(c);

fun.process();

fun.print();

return 0;

}

给你写好了,但是这个数组是你固定死了的,我建议你再试试创建个动态的数组,自己再做做!希望能帮助你!!祝你好运!

10分享举报


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部