Was ist hier falsch?



  • Dev-C++ meldet einen "stray '\160' in program" Fehler.

    #include <iostream>
    #include <conio.h>
    using namespace std;
    
    int main()
    {
        double A;
        cin>>A;
        if (A/2==0)
        {
        cout<<"gerade";
        }
        else
        {
        cout<<"ungerade";
        }
        getch();
        return 0;
    }
    


  • Es geht nicht darum, dass der Code keinen Sinn ergibt, sondern warum das Programm nicht kompiliert werden kann.

    mfG



  • Phisherman schrieb:

    Es geht nicht darum, dass der Code keinen Sinn ergibt

    Hat was. 😉

    Denkanstösse:
    -> Wann ist eine Zahl mit Nachkommastellen gerade, wann ungerade?
    -> Ist eine Zahl gerade, wenn sie das Doppelte von Null ist?



  • komsich versuch mal cin.get() statt getch()

    EDIT: A/2 == 0 ist ähm unmöglich, wenn A = 0 dann divide by Zero, ich glaub das mag er nicht



  • Tim06TR schrieb:

    EDIT: A/2 == 0 ist ähm unmöglich, wenn A = 0 dann divide by Zero, ich glaub das mag er nicht

    Denk nochmal darüber nach, du teilst nicht durch 0 sondern 2.



  • Wie bereits gesagt, es geht nicht um den Sinn. Ich sollte nur schauen, wieso das Programm nicht kompiliert werden kann (Das Programm ist nicht von mir).

    Aber danke für eure Denkanstöße 😃

    Hier der korrekte Code:

    Aber warum der andere Code nicht funktioniert, ist mir immer noch nicht klar.
    Ich habe auch schon die 0 durch eine andere Zahl ersetzt, was aber auch nichts bewirkt hat.

    #include <iostream>
    #include <conio.h>
    using namespace std;
    
    int main()
    {
        int A;
        cin>>A;
        if (A%2==0)
        {
        cout<<"gerade";
        }
        else
        {
        cout<<"ungerade";
        }
        getch();
        return 0;
    }
    


  • % ist ja wohl was komplett anderes als /



  • Das sieht so aus, als hättest du irgendwo ein Zeichen drin, das der Compiler nicht versteht. Entweder ist es nicht in diesem Teil des Codes, sieht exakt gleich wie ein anderes aus oder ist gänzlich unsichtbar.

    Code nochmals von Hand abtippen sollte das Problem beheben.



  • Tim06TR schrieb:

    % ist ja wohl was komplett anderes als /

    Danke, dass du immer so durchdacht und themenbezogen antwortest.


  • Mod

    Hattest du möglicherweise irgendein komisches whitespace-Zeichen in deinem Programm?



  • grins ALT + 255

    schon wieder 😃



  • \160 soll nen non breaking space sein, das man mit Shift+Leertaste schreiben kann. Da es Unicode ist, gehört es nicht in den Quelltext. Findet man übrigens direkt mit Google wenn man "stray '\160" eingibt 😉



  • Den Code, den ich oben eingefügt habe, ist das komplette Programm.

    Komischerweise wird ein Fehler bei "cin>>A" angezeigt. Der neue Code funktioniert.



  • OK ,hat sich erledigt. Danke euch. Ich habe nicht gesehen, dass schon 2 Seiten existieren.


Log in to reply