【发布时间】:2017-06-16 12:57:33
【问题描述】:
我有一个矩阵和一个带有 2 个int 变量的struct。
struct virus {
int gen;
int neighbours;
}
我想用1 值初始化我的完整gen 矩阵。问题是它不适用于矩阵的第一列。
我将在代码下方发布。
此外,当我尝试将矩阵设置为virus struct 时,它不起作用,我不得不初始化一个名为b 的新矩阵。
这只是一个简单的初始化和打印。
#include <stdio.h>
struct virus {
int gen;
int neighbours;
};
void initGen(int n, int a[][100])
{
struct virus b[n][100];
int i,j;
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
b[i][j].gen = 1;
}
}
}
void printMatrixGen(int n, int b[][100])
{
struct virus a[n][100];
int i;
for(i = 0; i < n; i++)
{
int j;
for(j = 0; j < n; j++)
printf("%d\t", a[i][j].gen);
printf("\n");
}
}
int main(void)
{
int a[100][100], n;
n = 4;
initGen(n,a);
printMatrixGen(n,a);
return 0;
}
输出是矩阵
0 1 1 1
0 1 1 1
0 1 1 1
0 1 1 1
代替
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
【问题讨论】:
-
为什么要传递一个数组作为参数,忽略它然后初始化一个本地数组呢?此代码没有任何意义,这就是您出错的原因。
-
顺便说一句:它不起作用不是问题描述。您需要告诉我们实际发生的情况以及您期望发生的情况。
-
我刚刚编辑了代码并添加了程序给我的输出和它应该的输出。
-
我必须将矩阵作为参数传递,因为我不能使用任何全局变量。
-
在
printMatrixGen和initGen这两个函数中,您只使用本地数组。
标签: c arrays matrix struct declaration