Werte bearbeiten



  • Hallo

    Ich habe ca. 80.000 int.Werte und ich muss jetzt den 1. mit dem 4. den 4. mit dem 7. Wert

    den 2.Wert mit dem 5. den 5 mit dem 8. Wert vergleichen und die Differenz ausgeben.

    Wie könnte ich das gescheit machen das ich immer vom dritten Wert die Differenz abziehe.

    Es gibt zwar die Werte korrekt aus aber nicht bearbeitet. Ich weiß nicht wie ich auf die Wert zugreifen könnte.

    ptr=calloc(row*lines*3,sizeof(int));
    
            for(i=0;i<row*lines*3;i++)
            {
    
                    fscanf(infile,"%d",&ptr[i]);
    
            }
    
            for(i=0;i<row*lines*3;i++)
            {
    
                 fprintf(outfile,"%d ",ptr[i]);
    
            }
    

    MfG



  • Du willst also vom 1. und 4. Wert die Differenz bilden. Und wo willst du die dann hinschreiben?? An die Stelle des 1. Wertes? Oder an die des 4.? Oder an beide?? Oder wie?

    Grundsätzlich könntest du die Differenz so ermitteln:

    abs(ptr[i]-ptr[i+3])
    

    Du musst halt nur prüfen, ob ptr+3 auch nicht über die Feldgrenze hinaus schießt. Aber wie genau du dass jetzt schreiben willst, ist mir noch ein Rätsel.



  • Ich habe jetzt den Code eingelesen und habe es geschafft ihn auch wieder in einer anderen Datei auszugeben.

    Ich habe die 80.000 Werte in einer Reihe. Das ist ein Pixel aus rot grün blau.
    Ich muss jetzt immer die roten Werte voneinander abziehen.

    Wert3=Wert 0 - Wert3
    Wert(erster Wert in zweiter Reihe)=Wert 0 - Wert(erster Wert in zweiter Reihe)

    Wert4=Wert 1 - Wert4
    Wert(zweiter Wert in zweiter Reihe)=Wert 1 - Wert(zweiter Wert in zweiter Reihe)

    Wert 5=Wert 2 - Wert5
    Wert(dritter Wert in zweiter Reihe)=Wert 2 - Wert(dritter Wert in zweiter Reihe)

    Wert6=Wert 3 - Wert6
    Wert(vierter Wert in zweiter Reihe)=Wert 3 - Wert(vierter Wert in zweiter Reihe

    1xx 2xx 3xx 4xx 5xx 6xx
    7xx 8xx 9xx 10xx 11xx 12xx

    4=1-4
    7=1-7

    5=2-5
    11=5-11

    6=3-6
    12=6-12

    Wie könnte ich das Programmieren.


Anmelden zum Antworten