当前位置: 代码迷 >> C语言 >> 关于求数组鞍点的问题(运行时错误提示:指令引用的内存不能为read)
  详细解决方案

关于求数组鞍点的问题(运行时错误提示:指令引用的内存不能为read)

热度:171   发布时间:2007-11-05 17:38:15.0
关于求数组鞍点的问题(运行时错误提示:指令引用的内存不能为read)

#include <stdio.h>
#define M 10
#define N 10
void Max_Min(int array[M][N],int m,int n)
{
int i,j,k,max,min;
for(i=0;i<m;i++)
{
max=i;j=0;
}
for(j=0;j<n;j++)
{
if(array[max][j]<array[i][j])
{
array[max][j]=array[i][j];
min=j;
}
}
for(k=0;k<m;k++)
if(array[max][min]>array[k][min])
break;
else
printf("%d",array[max][min]);
}

void main()
{
int array[M][N];
int i,j,m,n;
scanf("%4d%4d\n",&m,&n);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%4d",&array[i][j]);
Max_Min( array, m, n);
}
能VC6.0中编译通过,但运行时提示指令引用的内存不能为read.

搜索更多相关的解决方案: 鞍点  内存  read  指令  int  

----------------解决方案--------------------------------------------------------
在我这儿 运行没问题

检查你的环境

百度搜索 指令引用的内存不能为read

----------------解决方案--------------------------------------------------------
回复:(作弊)在我这儿 运行没问题检查你的环境百度搜...

#include <stdio.h>
#define M 10
#define N 10
void Max_Min(int array[M][N],int m,int n)
{
int i,j,k,max,min;//min 未赋初值
for(i=0;i<m;i++)
{
max=i;j=0;
}
for(j=0;j<n;j++)
{
if(array[max][j]<array[i][j])//条件不成立 m将不会被赋值
{
array[max][j]=array[i][j];
min=j;
}
}
for(k=0;k<m;k++)
if(array[max][min]>array[k][min])//运行过程m可能会没有被赋值
break;
else
printf("%d",array[max][min]);
}


void main()
{
int array[M][N];
int i,j,m,n;


scanf("%d%d\n",&m,&n);
getchar();

for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&array[i][j]);


Max_Min( array, m, n);
}

呵呵 我没改只是指出得错误哈 至于怎么改 .............


----------------解决方案--------------------------------------------------------
到遇到这样的情况的时候你要注意下下标的引用是否越界
----------------解决方案--------------------------------------------------------
回复:(叶柄)回复:(作弊)在我这儿 运行没问题检查...

谢谢你指出错误的地方.


----------------解决方案--------------------------------------------------------
回复:(nuciewth)到遇到这样的情况的时候你要注意下...

谢谢 我也不知乍搞的,我编程时经常出现内存不能为读的情况,不知是什么原因.


----------------解决方案--------------------------------------------------------
  相关解决方案