#include<stdio.h>
int main()
{void judge(int a[10][10],int m,int n);
int m,n;
printf("请输入矩阵的行数和列数:\n");
scanf("%d%d",&m,&n);
int a[m][n],i,j;
printf("enter the matrix:\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
judge(a,m,n);
return 0;
}
void judge(int a[10][10],int m,int n)
{int max,min,i,j;
for(j=0;j<n;j++)
{max=a[0][j];min=a[0][j];
for(i=1;i<m;i++)
{if(max<a[i][j]) max=a[i][j];
if(min>a[i][j]) min=a[i][j];
}
printf("第%d列最大值和最小值的差是%d\n",j+1,max-min);
}
}
我的VC++并不支持int a[m][n]这种写法,我知道你的GCC是支持的
所以我稍微修改了程序
#include<stdio.h>
#include<stdlib.h>
int main()
{void judge(int * a,int m,int n);
int m,n;
printf("请输入矩阵的行数和列数:\n");
scanf("%d%d",&m,&n);
int * a,i,j;
a = (int *)malloc(sizeof(int) * m * n);
printf("enter the matrix:\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i*n+j]);
judge(a,m,n);
return 0;
}
void judge(int * a,int m,int n)
{int max,min,i,j;
for(j=0;j<m;j++)
{max=a[j];min=a[j];
for(i=1;i<n;i++)
{if(max<a[i*n+j]) max=a[i*n+j];
if(min>a[i*n+j]) min=a[i*n+j];
}
printf("第%d列最大值和最小值的差是%d\n",j+1,max-min);
}
}
请问对函数解释部分是什么意思啊,我怎么看不懂