这个怎么改啊🙁
C语言不允许使用变量定义数组的大小。给你改一下代码
代码修改如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,m,b,sum=0;
float score;
int i,j;
int** k;
scanf("%d%d",&n,&m);
k = (int**)malloc(sizeof(int*)*m);
for (j=0;j<m;j++)
{
k[j] = (int*)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
{
scanf("%d",&k[j][i]);
if(i==0)
b = k[j][0];
else
{
if(k[j][i] > b)
b = k[j][i];
}
}
sum = sum +b;
}
score = 1.0*sum/m; //这里是除以m吧,你的行是m行啊
printf("%.2f",score);
for (i=0;i<m;i++)
{
free(k[i]);
k[i]=0;
}
free(k);
return 0;
}
k[j][i]不对啊
上面定义的i,j都没有给出具体值。
初始化二维数组,应该是根据输入的m,n值吧。
k[j][i]删掉,在scanf()后面定义k[m][n];
并且循环中的循环条件,把<=改为<