我试图在 -25 和 25 之间生成两个不同的 5x5 矩阵。我可以轻松生成 1 个矩阵,但每次我尝试生成第二个矩阵时,程序都会崩溃。我需要使用一个函数来生成这两个矩阵。
generate_matrices(int p[5][5],int q[5][5])
如果我删除int q[5][5],它工作正常,但包含时会崩溃。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a [5][5], b[5][5];
generate_matrices(a[5][5], b[5][5]);
return 0;
}
void generate_matrices(int p[5][5], int q[5][5])
{
int i=0,seed, r, row=0, column=0, s;
printf("Enter a number:");
scanf("%d",&seed);
srand(seed);
for (row=0; row < 5; row++ )
{
for (column=0; column < 5; column++ )
{
r = rand() % 50 + (-25); // generates random number
s = rand() % 50 + (-25); // generates random number
printf("p[%d][%d]:%d\t", row, column,p[row][column]=r);
printf("q[%d][%d]:%d\t", row, column,q[row][column]=s);// if i comment this one it works fine and generate only p[5][5]
i++;
if (column ==4)
{
printf("\n\n");
}
}
}
}
这是硬件问题还是与我的代码有关。
最佳答案
以下更改有帮助吗?
在 main()
之前,声明函数
void generate_matrices(int[5][5], int[5][5]);
传递两个矩阵如下:
generate_matrices(a, b);
关于c - 用 C 生成随机矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36484964/