#include<stdio.h>
int main()
{
short n,m;short i,idx,index;short** arr;short**indicator;short flag=0;
printf("请输入行数、列数,空格隔开:");
scanf("%d%d",&n,&m);
arr=(short**)malloc(sizeof(short*)*n);
indicator=(short**)malloc(sizeof(short*)*n);
for(i=0;i<n;i++)
{
arr[i]=(short*)malloc(sizeof(short)*m);
indicator[i]=(short*)malloc(sizeof(short)*m);
}
for(i=0;i<n;i++)
for(idx=0;idx<m;idx++)
{
printf("请输入第%d行第%d列的元素:",i+1,idx+1);
scanf("%d",&arr[i][idx]);
indicator[i][idx]=0;//初始化
}
printf("你的矩阵:\n");
for(i=0;i<n;i++)
{
for(idx=0;idx<m;idx++)
printf("%d\t",arr[i][idx]);
printf("\n");
}
for(i=0;i<n;i++)
{
for(idx=0;idx<m;idx++)
{
for(index=0;index<m;index++)
if(arr[i][idx]<arr[i][index]) indicator[i][idx]++;
for(index=0;index<n;index++)
if(arr[i][idx]>arr[index][idx]) indicator[i][idx]++;
}
}
printf("鞍点:");
for(i=0;i<n;i++)
{
for(idx=0;idx<m;idx++)
indicator[i][idx]?printf("X\t"):printf("%d\t",arr[i][idx]);
printf("\n");
}
return 0;
}
先前那个多弄了一次循环,感觉到没有必要,且输出作一下变动会醒目一些。