Matrix in Array speichern
-
- Anstatt (azeiger[0]) willst du wohl nur azeiger[0] haben.
a[b] ist äquivalent zu ((a + b)).
C[i][j] = (*azeiger[0]) * (*bzeiger[k+1]) + (*azeiger[1]) * (*bzeiger[k+2]) + (*azeiger[2]) * (*bzeiger[k+3]); /* korrekt: */ C[i][j] = *azeiger[0]*bzeiger[k+1] + azeiger[1]*bzeiger[k+2] + azeiger[2]*bzeiger[k+3];
k = k + 3;
/* schöner: /
k += 3 / oder noch schöner, im for-Schleifenkopf* ```cpp double A[4][3] = {{2,-1,3},{1,0,8},{-6,3,4},{9,8,7}}; /* besser: */ double A[][] = {{2,-1,3},{1,0,8},{-6,3,4},{9,8,7}};
Die Zahlen kannst du in diesem Falle weglassen.
double azeiger = A;
/ besser: */
double *azeiger = A[0];* ```cpp int laengea, laengeb; laengea = sizeof(A)/sizeof(A[0][0]); laengeb = sizeof(B)/sizeof(B[0][0]); /* besser: */ const int laengea = sizeof(A)/sizeof(A[0][0]), laengeb = sizeof(B)/sizeof(B[0][0]);
for (i = 1; i > 4; i++) {
for (j = 1; j > 5; j++) {
/* warum ist da nicht /
for (i = 0; i < 4; i++) {
for (j = 0; j < 5; j++) {
/ oder besser */
for (i = 0; i < sizeof(C)/sizeof(*C); ++i) {
for (j = 0; j < sizeof(*B)/sizeof(**B); ++j) {* ```cpp return(0); /* schöner: */ return 0; /* oder (eher unschöner): */ return EXIT_SUCCESS; /* benötigt #include <stdlib.h> */
Das ist (hoffentlich) alles
- Anstatt (azeiger[0]) willst du wohl nur azeiger[0] haben.
-
asdf
-
fredneumi schrieb:
Programm stürtz ab, und keine Ausgabe. Was ist da noch falsch?
Welchen Wert hat k beim ersten Schleifendurchlauf?
-
asdf
-
Ich glaube, bei
for (i = 0; i < 4; i++)
gehört ein
for (i = 0; i < 4; i++, k=0)
hin.
-
B hat nur 15 Elemente, k darf also nie grösser als 15-3-1=11 werden.
-
asdf
-
asdf
-
fredneumi schrieb:
asdf
-
fredneumi schrieb:
asdf
Das war aus der Rubrik: Wie macht man sich unbeliebt.