永发信息网

求助:c语言二维数组鞍点问题

答案:3  悬赏:10  手机版
解决时间 2021-04-11 20:17
  • 提问者网友:那叫心脏的地方装的都是你
  • 2021-04-11 01:56
编写函数,找出给定二维整数组A中所有鞍点。
P.S:最好连调用过程也一起编进去。。不胜感激啊!
最佳答案
  • 五星知识达人网友:患得患失的劫
  • 2021-04-11 03:18

#include<stdio.h>
#define m NUM1 //NUM1为矩阵的行数
#define n NUM2 //NUM2为矩阵的列数


void main()
{
void andian(int juzhen[m][n],int x,int y);
int shuzu[m][n],i,j,x,y;
x=m;y=n;
printf("请按行输入矩阵!\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&shuzu[i][j]);
andian(shuzu,x,y);
}


void andian(int juzhen[m][n],int x,int y)
{
int i,j;
int count=0; //count为计数器
for(i=0;i<x;i++)
for(j=0;j<y;j++)
{
int k;
bool bl=true; //假定该元素是鞍点
for(k=0;k<y;k++)
if(juzhen[i][k]<juzhen[i][j])
{
bl=false;
break;
} //是不是第i行最小的一个?是,真;不是,假。
for(k=0;k<x;k++)
if(juzhen[k][j]>juzhen[i][j])
{
bl=false;
break;
} //是不是第j列最大的一个?是,真;不是,假。
if(bl)
{
printf("该矩阵存在鞍点,它是矩阵(%d,%d):%d!\n",i+1,j+1,juzhen[i][j]);
count++; //i,j均从0开始,故加1。
break;
} //若最终是真,打印,计数器加一,跳出。
}
if(count==0)
printf("该矩阵不存在鞍点!\n"); //若最终计数器仍为0,则说明不存在鞍点。
}





考虑到你的智商,我做了很多说明,你要再看不懂,我就该掐死你了



全部回答
  • 1楼网友:人類模型
  • 2021-04-11 06:18

#include<stdio.h> #define sz 30 void f(int a[][],int n); int main() { int i,j,size, array[sz][sz]; printf("please input array 大小 size:\n"); scanf("%d",&size); printf("please input array[][]:\n"); for(i=0;i<size;i++) for(j=0;j<size;j++) scanf("%d",&array[i][j]); f(array,size); return 0;

} void f(int a[][],int n) { int i,j,k,x,y,min,max,rowx; for(i=0;i<n;i++) { min= a[i][0]; for(j=0;j<n;j++) { if( a[i][j]<min) { min= a[i][j]; x=i; y=j; } rowx=x; max= a[x][y]; for(k=0;k<n;k++) { if( a[k][y]>max) { max= a[k][y]; x=k; } } } if(rowx==x) { printf("array's %d row %d scol 鞍点值:%d.",x,y, a[x][y]); } } }

  • 2楼网友:猎心人
  • 2021-04-11 04:54
#define H 3 #define L 4 #include <stdio.h> int main() { int i,j,k; int a[H][L],min[H]; int max[H],col=0; int super[H]; for(i=0;i<H;i++) for(j=0;j<L;j++) scanf("%d",&a[i][j]); for(i=0;i<H;i++) max[i]=a[i][0]; for(i=0;i<H;i++) {{for(j=0;j<L;j++) if(a[i][j]>max[i]) {max[i]=a[i][j]; col=j;}} super[i]=col;} for(i=0;i<H;i++) for(k=0;k<H;k++) {if(max[i]<=a[k][super[i]]) min[k]=max[i]; else break;} printf("鞍点=%d\n",min[H-1]);getchar();getchar(); return 1; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯