这是一个神马程序,我简直要疯掉了,大家来看看
假设矩阵A中存在这样的一个元素A[i][j]满足条件:A[i][j]是第i行中值最小的元素,且又是j列中值最大的元素,则称之为该矩阵的一个马鞍点。求马鞍点代码如下::
#include <stdio.h>
#define Max 10
typedef struct
{
int cols;
int rows;
int data;
}B[10];
void main()
{
int n;
int i,j,num,t;
int min,max;
int A[Max][Max];
printf("请输入N*N阶矩阵的维数N(<10): ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("请输入第%d行元素:",i+1);
for(j=0;j<n;j++)
{
scanf("%d",&num);
A[i][j]=num;
}
}
printf("输入的矩阵为:\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%3d",A[i][j]);
printf("\n");
}
printf("\n");
for(i=0;i<n;i++)
{
min=A[i][0];
B[i].data=A[i][0];
B[i].cols=0;
for(j=0;j<n;j++)
{
if(A[i][j]<min)
{
min=A[i][j];
B[i].data=A[i][j];
B[i].cols=j;
}
} //for
} //for
for(j=0;i<n;i++)
{
max=A[0][j];
B[j].rows=0;
for(i=0;j<n;j++)
{
if(A[i][j]>max)
{
max=A[i][j];
//B[j].data=A[i][j];
B[j].rows=i;
}
}
}
for(i=0;i<n;i++)
{
t=B[i].cols;
if(i==B[t].rows)
printf("马鞍值为: %3d",B[i].data);
}
printf("\n");
getchar();
getchar();
}
这是一个神马程序,我简直要疯掉了,大家来看看。。。。。。。。提点建议。。。。。。。。。