[C/C++] Array übererschreibt sich selbst

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von BlueBox91, 24. März 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 24. März 2009
    Array übererschreibt sich selbst

    Hi leute habe folgendes problem ich poste erst mal meinen code
    ----------------------------
    Code:
    #include <stdio.h>
    #include <conio.h>
    
    #define ANZAHL 10
    
    int main()
    {
     int Koordinatey[ANZAHL], Koordinatex[ANZAHL], i = 0; 
     float y = 0, x = 0;
     
     while (i < ANZAHL)
     {
     i++;
     x = x + 0.1;
     y = 5*x; //das programm soll mir die 10 ersten werte dieser funktion angeben wenn man 
     x immer um 0.1 vergrößert
     Koordinatey[i] = y; // hier liegt vermutlich mein Fehler auf jedenfall will ich dass er mir die y-werte in das Array einspeichert 
     printf ("x=%f\ny=%f\n", x, y);
     printf ("Koordinatey1: %f\n\n", Koordinatey[1]); //um zu überprüfen ob das erste feld des arrays nicht überschrieben wird lasse ich es bei jedem durchlauf ausgeben
     printf ("-----------------\n");
     }
     getch();
     return 0;
     }
    ---------------------------------------------
    So nun mein problem: Für Koordinatey1 gibt er mir immer verschiedene werte aus(eigentlich sollte er gleich bleiben), und zwar imer die werte die eigentlich die variable x haben sollte. Hat jemand einen konstruktiven vorschlag?

    Mfg BlueBox
     
  2. 24. März 2009
    AW: Array übererschreibt sich selbst

    Benutz am besten das nächste mal den Code-Tag!

    Code:
    printf ("Koordinatey1: %f\n\n", Koordinatey[1]); //um zu überprüfen ob das erste feld des arrays nicht überschrieben wird lasse ich es bei jedem durchlauf ausgeben
    du überprüfst du nicht das erste, sondern das 2. Element des Arrays (Indizierung fängt bei bei 0 an)!

    Am Anfang sind also keine Wert im 2. Element (welches du ansprichst) und deshalb steht nur Datenmüll im entspechenden Element!

    Ich würde dir außerdem empfehlen eine for-Schleife zu benutzen.

    So funzt es bei mir (hab cout benutzt aus iostream)
    Code:
    #include <stdio.h>
    #include <conio.h>
    #include <iostream>
    
    #define ANZAHL 10
    
    using namespace std;
    
    int main()
    {
    float Koordinatey[ANZAHL], Koordinatex[ANZAHL];
    int i = 0;
    float y = 0, x = 0;
    
    while (i < ANZAHL)
    {
     x += 0.1;
     y = x * 5;
     Koordinatey[i] = y;
     //printf ("x=%f\ny=%f\n", x, y);
     cout << "x=" << x << endl;
     cout << "y=" << y << endl;
     printf ("Koordinatey1: %f\n\n", Koordinatey[0]);
     printf ("-----------------\n");
     i++;
    }
    getch();
    return 0;
    }
    greez
     
  3. 24. März 2009
    AW: Array übererschreibt sich selbst

    upppps saublöder fehler^^ danke für deine hilfe
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.