【发布时间】:2016-01-31 08:31:03
【问题描述】:
我正在尝试创建一个数据结构来存储一个矩阵并编写一个例程来生成一个随机数的方阵。
这是我的代码。奇怪的是,我只得到 2 个浮点数作为输出。我这样做是为了实现 strassen 矩阵乘法,这就是为什么我将 rs, re, cs, ce 添加到 struct。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef struct _matrix {
int rs;
int re;
int cs;
int ce;
float a[100][100];
}matrix;
void display(matrix m)
{
int i, j;
for (i=m.rs ; i<=m.re ; i++) {
for (j=m.cs ; j<=m.ce ; j++)
printf("%f", m.a[i][j]);
printf("\n");
}
printf("\n");
return;
}
matrix random_matrix(int n)
{
matrix random;
random.cs = random.rs = 0;
random.rs = random.re = n -1;
int i, j;
for(i=0; i < n; i++){
for(j = 0; j < n; j++)
random.a[i][j] = rand();
}
return random;
}
int main(void)
{
matrix m1 = random_matrix(3);
matrix m2 = random_matrix(3);
display(m1);
display(m2);
return 0;
}
【问题讨论】:
-
建议:在
main()中调用srand(time(NULL));一次。 -
随机数生成不是我的问题。我的代码的主要问题是我只得到 2 个浮点数作为获取 3x3 矩阵的输出。我不明白我搞砸的地方