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?
    Danke

    Lisa



  • Bitte benutz Code-Tags!





  • int A[3][4];
    

    So, jetzt sei j=0 und i=2.
    Gibt es dann das Element

    A[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


Log in to reply