Ich will ein bissl mit C Programmieren lernen und habe ein Problem eine Matrix gescheit zu befüllen.
Ich möchte das die Matrix wiefolgt ausschaut:
a a+b a+c ... a+n a+b b b+c ... b+n a+c b+c c ... c+n ...
a, b, c, ... n entnehme ich eines vorgegebenen arrays.
Also beispielsweise so hier:
a=1, b=2, c=1, d=4, e=5
1 3 2 5 6
3 2 3 6 7
2 3 1 5 6
5 6 5 4 9
6 7 6 9 5
Jetzt hab ich folgender maßen begonnen:
... int werte[lmax]={1, 2, 1, 4, 5, 6}; ... funktion_matrix(lmax, zmax) int lmax, zmax; int werte[lmax] { int matrix[lmax][zmax]; int l; int z; //löschen der Matrix for (l=0; l<lmax; l++) { for (z=0; z<zmax; z++) { C_matrix[l][z] = 0; } } //befüllen der Matrix for (l=0; l<lmax; l++) { matrix[l][l] = werte[l]; } }
Einmal scheint das mit den Variablen für die größe der arryas (lmax, zmax) nicht zu gehen. Vermutlich liegt das da ran, dass der Compiler die Größe schon beim Programmieren festlegt. Nun gut, damit kann ich leben... also bleiben die eckigen Klammern zur Größenangabe der Arrays einfach leer.
Aber abgesehen davon und das ich noch nicht weiß, wie ich die Berechnungen für die anderen Felder in Abhängigkeit von der Anzahl der zur verfügung stehenden Werte durchführen und diese eintragen kann, klappt schon beim befüllen der bloßen Variablen was nicht.
Meine Matrix schaut nun nämlich erstmal so aus:
1 0 0 0 0 2
0 2 0 0 0 0
0 0 1 0 0 0
0 0 0 4 0 0
0 0 0 0 5 0
5 0 0 0 0 6
kann mir jemand sagen, woran das liegt und mir helfen?
mfg wiseguy
Okay sorry - hab den Fehler schon gefunden: zmax darf nicht anderes sein als lmax - oder halt die Werte dürfen nicht anders sein - also muss die matrix natürlich gleich viele Zeilen wie Spalten haben.
Aber ich weiß trotzdem noch nicht, wie ich die Berechnungen anstelle. Kann mir dabei jemand helfen oder nen Tip geben?
mfg wiseguy