今天老师上课数据结构讲到了字符串和数组,字符串让我们用回溯法测算。后来叫我们做了一个动态数组的申请,加上算鞍点的算法。下面是我的完整代码
#include<iostream>
using namespace std;
void main()
{
int *p;
int m,n,i,j;
cout<<"请输入行:";cin>>m;
cout<<"请输入列:";cin>>n;
p=new int[m*n];
for(int i=1;i<=m*n;i++)
p[i]=100+i;
cout<<"您创建的二维数组是:"<<endl;
for(i=1;i<=m;i++)
{for(j=1;j<=n;j++)
cout<<" "<<p[(i-1)*n+j];
cout<<endl;}
for(i=1;i<=m;i++)
{ int m1=0;
int Min=p[(i-1)*n+1],Min1=p[(i-1)*n+1];
for(j=1;j<=n;j++)
{if(Min<p[(i-1)*n+j])
m1=j;}
for(j=1;j<=m;j++)
if(p[(j-1)*n+m1]<p[(i-1)*n+m1])
break;
if(j==5)
{cout<<endl;
cout<<"鞍点:"<<p[(i-1)*n+m1];break;
}
if(i==5)
cout<<"此矩阵不存在鞍点.";}
}
在做这个程序的时候我遇到了几个问题和心得,下面我们就来分享一下
1.在动态申请的时候我首先是用指针的,刚开始我把输入动态的数组的个数给忘了,最后在运行的时候系统报错的。在不断的调试中找到了这个低级的错误,从这件事情上我感觉到像我们这样的程序员在编写程序的时候范这样的低级错误也是不可避免的,在遇到这种情况的时候我们要淡定。我们要学会用调试找到我们的错误所在。
2.就是在算鞍点的时候我有大意了,在循环的时候我没有设置全局的变量而是在for循环里了,导致我运行的时候不识别局部的变量i和j了。
大概就是这几个方面。希望在以后能狗得到改变