c - 用 C 生成随机矩阵

标签 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");
            }
        }
    }
}

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

最佳答案

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

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

传递两个矩阵如下:

generate_matrices(a, b);

关于c - 用 C 生成随机矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36484964/

相关文章:

Android Matrix multiplyMM 详解

c# - 毕达哥拉斯定理检查单元是否在半径内

将 3 个无符号字符组合成一个无符号整数

c - 调试 C 代码和指针

c - 轻量级 GNU readline 替代品

R表按矩阵行

c - 如何从c中的stdin读取矩阵

java - 3D 投影不起作用

c - Valgrind 不显示行号

c - 用于控制系统服务的简单 C 或 C++ API