c - 用C写矩阵的元素
问题描述
A 矩阵占用了我所有的输入,但 B 矩阵占用了 2 或 3 个元素并崩溃。这次当我首先采用 B 元素时,它在第一个循环中崩溃了。
int main (void)
{
unsigned int row1, row2, column1, column2;
int A[ row1 ][ column1 ];
int B[ row2 ][ column2 ];
printf ("Enter rows and columns of A matrix: ");
scanf ("%u%u", &row1, &column1);
printf ("Enter rows and columns of B matrix: ");
scanf ("%u%u", &row2, &column2);
printf ("Enter elements of A matrix\n");
for ( i = 0; i < row1; i++ )
{
for ( j = 0; j < column1; j++ )
{
scanf ("%d", &A[ i ][ j ]);
}
}
printf ("\n\nEnter elements of B matrix\n");
for ( i = 0; i < row2; i++ )
{
for ( j = 0; j < column2; j++ )
{
scanf ("%d", &B[ i ][ j ]);
}
}
}
解决方案
您必须将数组的声明移动A
到第一个循环B
之前,for
第二个循环之后scanf()
这是为了允许使用有效值初始化变量row1
、row2
、column1
和。column 2
使用未初始化的变量会导致未定义的行为
推荐阅读
- react-native - 安卓启动问题。不支持的类文件主要版本 57
- c# - 使用预初始化列表进行迭代和使用 ienumerable/iqueryable 进行迭代有什么区别?
- python - 使用 JiTCDDE 时是否有正确的方法来获得过去的导数?
- android - ViewModelProviders 在 API 19 上找不到我的 ViewModel 类
- azure-machine-learning-service - amlignore 文件不会减小快照的大小
- python - 防止 PyCharm 打开存根文件 (*.pyi) 而不是源文件 (*.py)
- math - AB/ (C * D ^ E) 的前缀形式?
- c# - 带接口的状态设计模式
- ibm-cloud - 使用清单文件将 IBM Cloud Functions 部署到 IAM 名称空间中的 API
- c# - 如何在 Linq 中读取文本文件将行添加到 List<>