#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
void search(int **a,int row,int column);
void print(int **p,int row,int column);
int main(int argc, char* argv[])
{
int nrows,ncolumns,i,l;
printf("请输入数组大小,即数组的长度以及宽度(以逗号分隔).\n");
scanf("%d,%d",&nrows,&ncolumns);
int **array;
array= (int**)malloc(nrows * sizeof(int*));
for(i = 0; i < nrows; i++)
{
printf("请分别输入第%d行数组元素",i+1);
array[i] = (int*)malloc(ncolumns * sizeof(int));
for(l=0;l<ncolumns;l++)
{
scanf("%d ",&array[i][l]);
}
printf("\n");
}
print(array,nrows,ncolumns);
search(array,nrows,ncolumns);
free(array);
return 0;
}
void print(int **p,int row,int column)
{
int i,j;
printf("将数组整个输出:");
for(i=0;i<row;i++)
{
for(j=0;j<column;j++)
{
printf("a[%d][%d]==%d ",i,j,p[i][j]);
}
printf("\n");
}
}
void search(int **a,int row,int column)
{
int i,j,temp,mi,mj;
bool flag=true;
mi=0;
mj=0;
for(i=0;i<row;i++){
temp=a[i][0];
mi=i;
for(int j=1;j<column;j++)
{
if(temp<a[i][j]){
temp=a[i][j];
mj=j;
}
}
for(i=0;i<row;i++){
if(temp<a[i][mj]){
flag=false;
i=mi;
break;
}
}
}
if(!flag){
printf("在该数组中没有安点.\n");
}
else{
printf("该数组中存在安点,且安点是a[%d][%d]==%d\n",mi,mj,a[mi][mj]);
}
}
你试试看,我的输入似乎有点问题,我的结果我截个图给你看看
O(n^3)的不屑于要对吧。。。
那就直接给n^2的了
#include<stdio.h>