Doppelte Summe mit 2D Array
-
Hallo,
ich versuche die folgende doppelte Summe für ein 2 dim Array A[640][480] zu bilden:j=rows i=cols
Sum Sum((A[i][j]-A[i+1][j])(A[i][j]-A[i+1][j]))+((A[i][j]-A[i][j+1])(A[i][j]-A[i][j+1]))
j=0 i=0
wo die erste Summe von j=0 bis j=Anzahl der Zeilen und die zweite Summe von i=0 bis i=Anzahl der Spalten läuft.
Ich habe aber zuerst einen kleinen Test gemacht mit einem kleineren Array array A[3][4] als folgt:#include <iostream>
#include <ios>
#include <cmath>using namespace std;
int main()
{
double Sum;
double A[3][4]={{ 1, -2, 3, 4},{ 5, -6, 7, -8},{ 9, -10, 11, 12}};
for (int j=0; j<3; j++) {
Sum = 0.0;
for (int i=0; i<4; i++){
Sum += ((A[i][j] - A[i+1][j]) * (A[i][j] - A[i+1][j]))+((A[i][j] - A[i][j+1]) *(A[i][j] - A[i][j+1]));
}
}
cout<< scientific<< Sum <<endl;
return 0;
}Was ich nicht verstehe ist, dass die Console folgendes anzeigt: 1.#QNAN
Is mein Code nicht in Ordnung?
DankeLisa
-
Bitte benutz Code-Tags!
-
Forumsuche benutzen!!!!! Dann findest Du u.a. http://www.c-plusplus.net/forum/viewtopic-var-t-is-191198-and-view-is-next.html
-
int A[3][4];
So, jetzt sei j=0 und i=2.
Gibt es dann das ElementA[i+1][j]
?
-
jencas:
Den Link kannte ich schon;das Problem ist, dass ich nicht verstehe wie ein
1.#QNAN bei einer Addition entstehen kann...
-
ich soll also eine Änderung in den Schleifen vornehmen...
sollte ich vielleicht eine if-Bedingung einbauen?
-
Das kann ich dir nicht sagen, weil ich nicht weiß, was du da vorhast. Ich würde eher vorschlagen, dass du die Schleifengrenzen veränderst.
-
Ok! ich hab's!meine Schleife sollte so aussehen:
for (int j=0; j<(spalte-1); j++) { for (int i=0; i<(zeile-1); i++){...
danke
Lisa