Zahlen umkehr Programm klapptt nicht?



  • Hallo

    welche Fehlermeldung denn?
    sicher hier

    while (d = 1);
    

    denn das soll sicher

    while (d == 1);
    

    heißen.

    außerdem ist statt int dies

    char eingabe;
    

    besser.

    bis bald
    akari



  • Moin,

    Versteh ich nicht?
    Also ich habe das jetzt so geändert wie du das gesagt has taber trodzdem kommt noch die gleiche Fehler meldung?
    Ich starte das Programm und gebe eine Zahl ein und dan sagt er Windows hat bei Proejekt 1 einen schwer wiegenden Fehler gefunden.....
    Ich weiß nicht warum?

    Thx
    DarkAngel



  • Zuweisung =
    Vergleich == != ...

    Du definierst in deinem Quelltext int Eingabe
    aber schreibst case '4' 😉



  • #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main(int argc, char* argv[])
    {
      int myZahl;
    
      std::string Zahlen[11] = {"Null", "Eins", "Zwei", "Drei", "Vier",
                                "Fuenf", "Sechs", "Sieben", "Acht", "Neun", "Zehn"};
    
      while(1)
      {
        cout << "Zahl: ";
        cin >> myZahl;
    
        if(myZahl >= 0 && myZahl <= 11)
        {
          cout << "\t\t" << Zahlen[myZahl] << endl;
        }
        else
        {
          cout << "\t\tEingabe war nicht eindeutig! :(" << endl;
        }
      }
    
      return 0;
    }
    

    So einfach ist eine Endlosschleife möglich. ;):p



  • Moin,

    @ shareholder
    Ich weiß, habe ich aber auch gesagt in meinem lätzten beitrag das ich das verändert habe so wie der davor mir das gesagt wurde. Aber es klappt ja immer noch nicht? Ich poste jetzt einfach nochmal den Text so wie ich ihn jetzt habe.

    #include <stdio.h>
    
    void main ( void)
    {
    char eingabe;
    int d = 1;
    
    do
     {
        printf ("\nBitte geben Sie eine Zahl ein: ");
        scanf ("%d",eingabe);
    
        switch (eingabe)
     {
        case '1':
        printf ("\nEins");
        break;
        case '2':
        printf ("\nZwei");
        break;
        case '3':
        printf ("\nDrei");
        break;
        case '4':
        printf ("\nVier");
        break;
        case '5':
        printf ("\nFünf");
        break;
        case '6':
        printf ("\nSechs");
        break;
        case '7':
        printf ("\nSieben");
        break;
        case '8':
        printf ("\nAcht");
        break;
        case '9':
        printf ("\nNeun");
        break;
        case '10':
        printf ("\nZehn");
        break;
        default:
        printf ("\nEs wurde eine falsche Zahl eingegeben!");
     }
    }
    while (d == 1);
    }
    

    Thx
    DarkAngel



  • DarkAngel schrieb:

    ...Aber es klappt ja immer noch nicht?...

    was klapp nicht? welche fehlermeldung erhälst du? schreibe dennoch mal lieber 'int main()' statt' void main(void)'



  • scanf ("%d",eingabe); // fehler
    


  • DarkAngel schrieb:

    Moin,

    Versteh ich nicht?
    Also ich habe das jetzt so geändert wie du das gesagt has taber trodzdem kommt noch die gleiche Fehler meldung?
    Ich starte das Programm und gebe eine Zahl ein und dan sagt er Windows hat bei Proejekt 1 einen schwer wiegenden Fehler gefunden.....
    Ich weiß nicht warum?

    Thx
    DarkAngel

    Thx
    DarkAngel



  • Moin,

    AHH 😡 😡 😡 😡
    Ich vergess immer das &!
    dadran lags Danke!

    Thx
    DarkAngel



  • Versuch's mal so:

    #include <stdio.h>
    
    int main ( void) /* <-- es heißt int main(void) */
    {
    int eingabe; /* <--- */
    int d = 1;
    
    do
     {
        printf ("\nBitte geben Sie eine Zahl ein: ");
        scanf ("%d", &eingabe); /* <----- hier musst du die Adresse uebergeben */
    
        switch (eingabe)
     {
        case 1: /* <--- hier muessen ganz einfach die zahlen stehen */
        printf ("\nEins");
        break;
        case 2:
        printf ("\nZwei");
        break;
        case 3:
        printf ("\nDrei");
        break;
        case 4:
        printf ("\nVier");
        break;
        case 5:
        printf ("\nFünf");
        break;
        case 6:
        printf ("\nSechs");
        break;
        case 7:
        printf ("\nSieben");
        break;
        case 8:
        printf ("\nAcht");
        break;
        case 9:
        printf ("\nNeun");
        break;
        case 10: /* <--- spaetestens '10' gibt's nicht als char ;-) */
        printf ("\nZehn");
        break;
        default:
        printf ("\nEs wurde eine falsche Zahl eingegeben!");
     }
    }
    while (d == 1);
    }
    


  • Ich hoffe

    a) dass du weißt, was das &-Zeichen bedeutet ⚠

    b) und dass ab (int)10 (2 Zeichen) ➡ not(char) die funktion fehl schlägt

    🙄

    also änder das char in signed long int oder was auch immer 👍

    [edit]da war einer schneller :)[/edit]



  • Moin,

    Dieses

    void main(void)
    

    das habe ich aus dem tutorial da stand das so drin. 😃
    Ist aber eigentlich richtig.

    Thx
    DarkAngel



  • Schon, aber in C++ nimmt man:

    int main(void)
    {
    ...
    return(0);
    }
    

    Ob es so grundlegend wichtig ist, wage ich (in vielen Fällen) zu bezweifeln, aber schickt sich so bei C++



  • Moin,

    Ähhhm, ich habe gesagt das ich mich im Forum fertan habe eigentlich sollte das nach C hin und nicht C++. Also nochmal entschuldigung habe mich vertan.

    Thx
    DarkAngel



  • Du hast nur gesagt, du seist im Forum falsch,
    aber in welches du möchtest, ..., davon war nicht die Rede. 😉



  • Moin,

    Stimmt Mist 🙄

    Thx
    DarkAngel



  • MG80S schrieb:

    Schon, aber in C++ nimmt man:

    int main(void)
    {
    ...
    return(0);
    }
    

    Ob es so grundlegend wichtig ist, wage ich (in vielen Fällen) zu bezweifeln, aber schickt sich so bei C++

    und selbst dieses 'void' kannst du dir noch sparen, ergo:

    int main()
    

    ich hatte mal gelesen das die main-anweisung in der zukunft etwas zurückgeben soll, darum sollte man sich an 'int main()' statt 'void main()' umgewöhnen.

    kann dies nicht bestätigen, klingt aber logisch (irgendwie)



  • enno-tyrant schrieb:

    ich hatte mal gelesen das die main-anweisung in der zukunft etwas zurückgeben soll, darum sollte man sich an 'int main()' statt 'void main()' umgewöhnen.

    eh? Schon mal getestet ob die "main-anweisung" etwas zurückgibt? vielleicht ist die Zukunft ja näher (oder gar noch weiter, je nach dem:)) als du denkst.. 😃



  • wie willst du den das 'testen'? wirst ja irgendwie eine zweite main-anweisung brauchen in der du das 'ergebnis' der ersten main zurückgeben kannst.


Anmelden zum Antworten