在C中生成随机矩阵

时间:2016-04-07 19:02:11

标签: c matrix

我试图在-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");
            }
        }
    }
}

这是硬件问题还是与我的代码有关。

1 个答案:

答案 0 :(得分:0)

以下更改是否有帮助? 在main()之前,声明函数

void generate_matrices(int[5][5], int[5][5]);

如下所示传递两个矩阵:

generate_matrices(a, b);