C语言为什么老出现 指令引用的内存,该内存不能为read,,下面是程序

找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点。#include<stdio.h>voidmain(){inta[4][4]={{1... 找出一个二维数组中的鞍点,即该位置上的元素在该行上最
大,在该列上最小,也可能没有鞍点。
#include<stdio.h>
void main()
{
int a[4][4]={{11,1,23,45},{40,56,90,91},{23,21,12,40},{45,67,23,90}};
int i,j,min,col,row,max;
for(i=0;i<4;i++)
{
max=a[i][0];
for(j=i+1;j<4;j++)
{
if (a[i][j]>max)
{
max=a[i][j];
col=j;
}
}
min=a[i][col];
for(j=0;j<4;j++)
{
if(a[i][col]<min)
{
min=a[i][j];
row=j;
}
}
if(max==min)
printf("鞍点是:%d\n",a[row][col]);
}
}
展开
 我来答
百度网友9529c38
2012-12-19 · TA获得超过729个赞
知道小有建树答主
回答量:219
采纳率:57%
帮助的人:206万
展开全部
for(j=i+1;j<4;j++)
{
if (a[i][j]>max)
这里应该是for(j=1;j<4;j++)

for(j=0;j<4;j++)
{
if(a[i][col]<min)
这里应该是if(a[j][col]<min)
下面也是min=a[j][col];
并且最好在for语句之前加一个,row=i;
会出错就是因为没有给row赋值,导致地址越界。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hwm_2012
2012-12-20 · TA获得超过966个赞
知道小有建树答主
回答量:470
采纳率:0%
帮助的人:409万
展开全部
#include<stdio.h>
void main()
{
int a[4][4]={{11,1,23,45},{40,56,90,91},{23,21,12,40},{45,67,23,90}};
int i,j,min,col,row,max;
for(i=0;i<4;i++)
{
max=a[i][0];
col=0; //<<< 添加列号初值
for(j=1;j<4;j++) //for(j=i+1;j<4;j++) //改
{
if (a[i][j]>max)
{
max=a[i][j];
col=j;
}
}
min=a[i][col];
for(j=0;j<4;j++)
{
if(a[j][col]<min) //if(a[i][col]<min) //改
{
min=a[j][col]; //min=a[i][j]; //改
row=j;
}
}
if(max==min)
printf("鞍点是:%d\n",a[row][col]);
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式