各位帮忙看看这个简单的问题

luoyuyun 2006-12-07 04:25:20
编一 c程序,输入以下二维数组
1 4 11 3 4
2 4 8 8 1
2 5 7 6 4
1 4 9 4 7
用子函数实现,找出数组中在列上最小,且行上最大的元素及其行列号,要求用(*p)[n]型指针实现,并在主函数中打印结果
...全文
187 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
luoyuyun 2006-12-07
  • 打赏
  • 举报
回复
我把答案写出来了 谢谢各位的回答,特别是给我提醒鞍点的朋友
void main()
{
int array[4][5]={{1,4,11,3,4},{2,4,8,8,1},{2,5,7,6,4},{1,4,9,4,7}};
int i,number=0,sign,j,m,n;
printf("数组是:\n");
for (i = 0;i <=3;i++)
{
for (j = 0; j<= 3;j++)
printf("%5d",array[i][j]);
printf("\n");
}
printf("\n");
for (i = 0; i <= 3; i++)
{
m = i;
n = 0;
sign = 1;
for(j = 0; j <= 3;j++)
{
if (array[m][n] < array[i][j])
{n = j;}
}
for(j = 0; j <= 3;j++)
{
if(array[m][n] >array[j][n])
sign = 0;
}
if (sign == 1)
{printf("鞍点是 %d\n",array[m][n]);number++;}
}
if (number == 0)
printf("没有鞍点\n");
}
luoyuyun 2006-12-07
  • 打赏
  • 举报
回复
judge(int a[M][N]);
这个子函数是干什么的?问下,谢谢
laiwusheng 2006-12-07
  • 打赏
  • 举报
回复
所谓的鞍点就是在本行的数中最大,

在它的列的是最小的点,一个数组可能有也可能没有鞍点.

#i nclude"stdio.h"
#define M 3
#define N 3
void judge(int a[M][N]);
int count=0;
main()
{
int i;
int date[M][N]={5,15,3,7,15,3,4,10,9};
for(i=0;i<M;i++)
judge(date);
if(count==0)
printf("NO match found!\n");
}
void judge(int a[M][N])
{
static int n1=0; /* 每次一行扫描 */
int k,m1=0,n2=0,max=a[n1][0],min; /* a[n1][m1]表示这行的最大,a[n2][m1]表示此行最大数的列的最小*/
for(k=0;k<N;k++) /* 找最大 */
if(a[n1][k]>max)
{ max=a[n1][k];
m1=k;
}
min=a[0][m1];
for(k=0;k<M;k++) /* 找最小 */
if(a[k][m1]<min)
{
min=a[k][m1];
n2=k;
}
if(n1==n2) /* 看它们的横坐标是否相等 */
{
count++;
printf("date[%d][%d]= %d suit the condition!\n",n1,m1,a[n1][m1]);
}
n1++;

}
luoyuyun 2006-12-07
  • 打赏
  • 举报
回复
不是昨作业 哈 ,考研的
neosu 2006-12-07
  • 打赏
  • 举报
回复
作业??

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧