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]);
}
} 展开
大,在该列上最小,也可能没有鞍点。
#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]);
}
} 展开
2个回答
展开全部
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赋值,导致地址越界。
{
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赋值,导致地址越界。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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]);
}
}
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]);
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询