不知道怎么定义不定长的二维数组

软件工程2020级某班一共有L人,2020-2021学年第一学期有M门课考试。为了对软件工程2020级某班班级学生学习效果进行分析,需要对学生的考试成绩进行处理,分别用函数实现下列功能。(L和M分别用scanf函数输入,a[0][0]可以代表第1位学生的第1门课成绩,所有要求均在一个程序内实现。)
1.输入每个学生每门课的分数,计算每个学生的平均分。
2.计算每门课的平均分。
3.找出每门课程的最高分和最低分所对应的学生。
4.计算平均分方差:

其中Xi为某一学生的平均分。
#include
int main()
{
int L,M;
int i,j,score;
int sum=0;
float aver;
int a[i][j];
printf("输入人数:\n");
scanf("%d",&L) ;
printf("输入科目数:\n");
scanf("%d",&M);
for(i=0;i
{
printf("第%d个学生的成绩:",i+1);
for(j=0;j
{
scanf("%d",&score);
a[i][j]=score;
sum+=score;
}
aver=sum/M;
printf("平均成绩:%0.1f\n",aver);
sum=0;
}

return 0;

}

int a[i][j];时,i,j都是未知的。放到输入之后

动态数组
int n,m;
cin>> n>>m
int a[n][m];
或者
int ** a=new int*[n];
for(i=0;i<n;i++)
  a[i]=new int[m];