Ich habe eine Matrix und eine struct
mit 2 int
Variablen.Matrix, die eine Struktur verwendet
struct virus {
int gen;
int neighbours;
}
Ich möchte meine volle gen
Matrix mit dem 1
Wert initialisieren. Das Problem ist, dass es für die erste Spalte der Matrix nicht funktioniert. Ich poste unten den Code. Auch wenn ich versuchte, meine Matrix als virus struct
zu setzen, funktionierte es nicht und ich musste eine neue Matrix initialisieren, die ich b
nannte. Es ist nur eine einfache Initialisierung und ein Drucken.
#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;
}
Die Ausgabe ist die Matrix
0 1 1 1
0 1 1 1
0 1 1 1
0 1 1 1
Statt
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
Warum Sie ein Array als Parameter übergeben kann, ignorieren sie und dann stattdessen ein lokales Array initialisieren? Dieser Code macht keinen Sinn und das ist der Grund für Ihre Fehler. – Lundin
BTW: _Es hat nicht funktioniert_ ist keine Problembeschreibung. Sie müssen uns sagen, was tatsächlich passiert und was Sie erwarten. –
Ich habe gerade den Code bearbeitet und die Ausgabe, die das Programm mir gibt, und die, die es erstellt, hinzugefügt. –