Probleme mit meinem Programm



  • Hi,

    ich bin gerade dabei mir einen neuen Programm zu schreiben der zwei Zahlen addieren tut und dann Ausgabe machen, aber der geht nicht. Kann ihr mir sagen wie?

    #include <stdio.h>

    void main(void) {
    puts("Bitten Zahl eingib");
    int zahl1;
    scanf("%s",zahl1);
    puts("Bitten Zahl eingib");
    int zahl2;
    scanf("%s",zahl2);
    puts("Ergäbnis sein %s", zahl1, zahl2);
    }

    Gruße Sie C-Anfänger



  • 1. Verwende CPP Tags des Boards, es ist nicht so schwer
    2. Die main Funktion ist von Typ int und nicht void
    3. demnach sollte main etwas zurückgeben (mit return, 0 für fehlerlos, != 0 sonst)
    4. scanf erwartet den Zeiger (=Addresse) auf einen Puffer, wo die gelesenen Sachen geschrieben werden müssen. Also scanf(format, &varname) (wenn varname kein Zeiger ist)
    5. Das Format "%s" weist darauf hin, dass es sich um ein String handelt. Du willst aber zahlen lesen, also benutze "%d"
    6. selbst wenn scanf richtig gewesen wäre, dann hast du trotzdem vergessen, zahl1 und zahl2 zu addieren
    7. man: puts(3) erwartet nur einen const char* und ist keine Ellipse. Dafür gibt es man: printf(3).
    8. Siehe 5 für das Format von printf
    9. Mit "aber der geht nicht." kann man nichts anfangen. Was heißt das? Wir können nicht hellsehen.



  • supertux schrieb:

    1. Verwende CPP Tags des Boards, es ist nicht so schwer
    2. Die main Funktion ist von Typ int und nicht void
    3. demnach sollte main etwas zurückgeben (mit return, 0 für fehlerlos, != 0 sonst)
    4. scanf erwartet den Zeiger (=Addresse) auf einen Puffer, wo die gelesenen Sachen geschrieben werden müssen. Also scanf(format, &varname) (wenn varname kein Zeiger ist)
    5. Das Format "%s" weist darauf hin, dass es sich um ein String handelt. Du willst aber zahlen lesen, also benutze "%d"
    6. selbst wenn scanf richtig gewesen wäre, dann hast du trotzdem vergessen, zahl1 und zahl2 zu addieren
    7. man: puts(3) erwartet nur einen const char* und ist keine Ellipse. Dafür gibt es man: printf(3).
    8. Siehe 5 für das Format von printf
    9. Mit "aber der geht nicht." kann man nichts anfangen. Was heißt das? Wir können nicht hellsehen.

    Ich verstehen nicht. Können du mir korrektur meiner Programm, so ich sehen was falsch.



  • ungefähr so:

    void main(void) {
    puts("Bitten Zahl eingib");
    int zahl1;
    scanf("%d",&zahl1);
    puts("Bitten Zahl eingib");
    int zahl2;
    scanf("%d",&zahl2);
    printf("Ergäbnis sein %d", zahl1 + zahl2);
    }
    

    ^^ungetestet
    🙂



  • Ich machen kompielire und der geben Fehler, mit int. Wenn du selber nicht können Program dann nicht schreiben hier Program und ich probiere und frage warum dem nicht geht.



  • Und wenn's auch ein Troll ist, es erinnert mich an meine ersten 2 Wochen mit C ... 🙂



  • Scheppertreiber schrieb:

    Und wenn's auch ein Troll ist, es erinnert mich an meine ersten 2 Wochen mit C ... 🙂

    Du mir lieber helfen und nicht spammen hier in meinen Thread. Dnake!



  • Denn man los:

    int var1, var2;
    
    scanf( "%d", &var1);
    printf( "\nDu hast doch echt 'ne Zahl eingeben, ich rate die mal: %d", var1);
    
    scanf( "%d", &var2);
    printf( "\nDu hast doch echt noch 'ne Zahl eingeben, ich addiere das: %d", var1+var2);
    

    Die scanf()-Funktionen erwarten immer Zeiger auf den Speicherbereich wo sie
    den gefundenen Kram hineinschreiben sollen - also die Adresse von var1 oder
    var2. Bei der Ausgabe mit printf() geht es nur um den Zahlenwert, die Funktion
    braucht nicht die konkrete Adresse der Variablen.



  • Dnake, ich haben jetzt so
    #include <stdio.h>

    void main(void) { 
    int var1, var2;
    
    scanf( "%d", &var1);
    printf( "\nDu hast doch echt 'ne Zahl eingeben, ich rate die mal: %d", var1);
    
    scanf( "%d", &var2);
    printf( "\nDu hast doch echt noch 'ne Zahl eingeben, ich addiere das: %d", var1+var2);
    }
    

    aber immernoch Fehler mit int



  • C-Neuling schrieb:

    aber immernoch Fehler mit int

    wie wärs du kopieren Fehler mit int hier ein??



  • C-Neuling schrieb:

    Dnake, ich haben jetzt so
    #include <stdio.h>

    void main(void) { 
    int var1, var2;
    
    scanf( "%d", &var1);
    printf( "\nDu hast doch echt 'ne Zahl eingeben, ich rate die mal: %d", var1);
    
    scanf( "%d", &var2);
    printf( "\nDu hast doch echt noch 'ne Zahl eingeben, ich addiere das: %d", var1+var2);
    }
    

    aber immernoch Fehler mit int

    int main(void) {
    int var1, var2;

    scanf( "%d", &var1);
    printf( "\nDu hast doch echt 'ne Zahl eingeben, ich rate die mal: %d", var1);

    scanf( "%d", &var2);
    printf( "\nDu hast doch echt noch 'ne Zahl eingeben, ich addiere das: %d", var1+var2);
    }



  • C-Neuling schrieb:

    Wenn du selber nicht können Program dann nicht schreiben hier Program ...

    sagte ich doch: 'ungetestet'
    aber bestimmt sind weniger fehler drin, als in deinem ursprungscode.
    🙂



  • C-Neuling schrieb:

    Ich machen kompielire und der geben Fehler, mit int. Wenn du selber nicht können Program dann nicht schreiben hier Program und ich probiere und frage warum dem nicht geht.

    willst du etwa nur trollen? Wenn ja, dann hör bitte damit auf 😡



  • asdas, dnake, aber dem nicht gehen. Kompielir bringen fehelr. Nicht find Fnuktion.


Anmelden zum Antworten