


出了三个同样的错误,不过查不到是什么意思,求大神指点。
代码:
//有一个4*5的矩阵,要求编程求出其中值最小的那个元素的值,以及其所在的行号和列号。
#include <stdio.h>
#define M 4
#define N 5
int min(int a[M][N])
{
int i,j,k,t;for(k=0;k<M-1;k++){for(i=0;i<M;i++){for(j=0;j<N-1;j++){if(a[i][j]<a[i][j+1])t=a[i][j];a[i][j]=a[i][j+1];a[i][j+1]=t;}}if(a[k][N-1]<a[k][N-1])t=a[k][N-1];a[k][N-1]=a[k+1][N-1];a[k+1][N-1]=t;}
printf("最小值是%d",a[M-1][N-1]);return a[M-1][N-1];}
void search(int a[M][N],int n)
{
int i,j;for(i=0;i<M;i++){for(j=0;j<N;j++)if(a[i][j]==n) break;break;}
printf("第%d行,%d列",i,j);}
int main()
{
int a[M][N],i,j,n;for(i=0;i<M;i++)for(j=0;j<N;j++)scanf("%d",&a[i][j]);n=min(a);search(a,n);return 0;}
第六行的const拿掉
#include <stdio.h>
#define M 4
#define N 5
int min(int a[M][N])
{
int i, j, k, t=a[0][0];
for (i = 0; i < M; i++)
{
for (j = 0; j < N ; j++)
{
if (a[i][j] < t)
t = a[i][j];
}
}
printf("最小值是%d", t);
return t;
}
void search(int a[M][N],int n)
{
int i,j,k=0;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
if(a[i][j]==n)
{
printf("第%d行,第%d列",i,j);
k=1;
break;
}
}
if(k) break;
}
}
int main()
{
int a[M][N], i, j, n;
for (i = 0; i < M; i++)
for (j = 0; j < N; j++)
scanf("%d", &a[i][j]);
n = min(a);
search(a,n);
return 0;
}
错误提示为:在运算中,a只能被读取
改法,第6行的const去掉