既然你说gcc支持,我就跑了一遍
确实gcc可以用变量定义数组长度
这又出现一个问题,题主对c数组初始化其实并没有起作用
因为长度为变量,这里初始化必须要用双循环
然后我运行是并没有报错,只有c数组初始化那里有个警告
改了初始化之后,在程序上已经没什么错误了
至于题目逻辑这一块
我输入的所有值都是2
输出为:
8 8
8 8int m,p,n;
scanf("%d %d %d",&m,&p,&n);
int a[m][p], b[p][n], c[m][n]; //={0};
for (int i = 0; i < m; ++i)
{
for (int j = 0; j < n; ++j)
{
c[i][j] = 0;
}
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < p; j++)
{
scanf("%d", &a[i][j]);
}
}
for(int i=0;i<p;i++)
{
for(int j=0;j<n;j++)
{
scanf("%d",&b[i][j]);
}
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
for(int k=0;k<p;k++)
{
c[i][j] +=a[i][k]*b[k][j];
}
}
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
printf("%d ",c[i][j]);
}
printf("\n");
}
return 0;
|