#include<iostream>
#include<stdlib.h>
#include<math.h>
#include<ctime>
#include<string>
using namespace std;
int main()
{ //40、找出一个二维数组中的鞍点,即该元素在该行上最大,在该列上最小。
int a,b,x,y,z,max,min;
cout<<"输入二维数组的行数a和列数b"<<endl;
cin>>a>>b;
int arr[a][b];
for(int k=0;k<a;k++)
{ for(int h=0;h<b;h++)
{
cin>>arr[k][h];
}
}
for(int i=0;i<a;i++)
{
for(int j=0;j<b;j++)
{
if(arr[i][j]>max)
{
max=arr[i][j];
x=j;
}
}
for(int p=0,min=arr[i][x],/*y=i*/;p<a;p++)
{
if(arr[p][x]<min)
{
min=arr[p][x];
y=p;
}
}
if (i == y)
{
cout << arr[i][x] <<" 这是二维数组的鞍点"; //如果该最大值行号没有改变,输出鞍点
break;
}
if (i == b && i != y)
cout<<"这个二维数组没有鞍点"<<endl; //输出没有鞍点
}
system("pause");
return 0;
}
是不是因为你y=i前面用了逗号,,,!?
还有我看前面那个数组需要动态分配啊