输入:M行N列数据
输出:马鞍数——该数据在所处行上最小,所处列上最大
#include #include #include #include struct Saddle { int value; //记录值 int index; //记录所在的列号 int flag; //标记位,初始为0,表示不是马鞍数 }; void input_array(int **a,int m,int n) //二维数组的随机输入 { /*数据的随机输入,若测试特定的数据,修改本部分*/ srand(time(NULL)); for(int i=0;in) return m; else return n; } void my_memset(int *a,int n) { for(int i=0;imax_value) { max_flag=1; break; } } if(max_flag==0) //此值在纵坐标上是最大值 { printf("row=%d\tcol=%d\tvalue=%d\n",i,col_index,p_str[i].value); exit_flag=1; } } if(exit_flag==0) { printf("NULL\n"); } free(mix_key); } int main(int argc,char **argv) { int m,n; //m行n列 printf("请输入数组的行数\n"); scanf("%d",&m); printf("请输入数组的列数\n"); scanf("%d",&n); int **array=(int **)malloc(sizeof(int *)*m); //动态分配连续的二维存储空间 array[0]=(int *)malloc(sizeof(int)*m*n); for(int i=1;i