Was ist sinnvoller? eine IF oder eine for while Anweisung?



  • schreiben Sie ein Programm, das Zahlen von der Tastatur ein- liest. Das Einlesen soll so lange wiederholt werden, bis eine Zahl kleiner als 0 eingegeben worden ist. Die eingelesene Zahl soll mit 2 multipliziert und auf dem Bildschirm ausgegeben werden. Zahlen kleiner als 0 sollen nicht ausgegeben werden. Beispiel: falls 5 eingegeben wurde, soll ausgegeben werden: Die Zahl 5 mal 2 ist 10

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    int main()
    {
    int zahl;
        int zwei;
        scanf("%d",&zahl);
     printf("%d",&zahl);
        if (zahl<0)
        { printf("Zahlen kleiner Null unzulässig\n");
            { scanf("Zahlen kleiner Null unzulässig\n");
            else
            { printf("%d",&zwei); scanf"%d",&zwei)
            }}}
    

    ich Glaub mein Ansatz ist für die Tonne



  • Was ist sinnvoller? eine IF oder eine for while Anweisung?
    

    Kommt auf die Aufgabe an - was du nutzen solltest steht bei dir in der Aufgabe.
    c ist sehr pingelig was Groß-und Kleinschreibung betrifft, deshalb nicht schlampen 😉

    scanf("%d",&zahl);
    

    Noch mal sehr genau die Doku lesen - jede Kleinigkeit ist wichtig.
    Unterschiede und Gemeinsamkeiten zwischen den folgenden beiden Zeilen noch mal ansehen:

    scanf("%d",&zahl);
     printf("%d",&zahl);
    

    Mach nur was in deiner Aufgabe verlangt wird, ausser du möchtest Zwischenergebnisse wissen. Zwischenergebnisse kann man aber auch beim debuggen sehen.

    Zur Optik, die Quelltextformatierung ist kein Selbstzweck 😉 Sie soll die Übersicht des Quelltextes erleichtern. Ab Zeile 6 besteht bei dir Verbesserungsbedarf. Die pure Lösung geht auch ohne Qptik - aber ob du das dann lesen willst?



  • Hi

    Also ich bin auch kein Experte, aber ich denke du bist nicht so auf dem Holzweg.
    Du hast 2 Denkfehler.

    1. Du solltest eine Variable Zahl definieren. Diese hat einen fixen Wert, sprich uint8_t zahl= 2, Sonst kannst du ja nicht rechnen.
    2. Du musst mit printf(...) jemanden per Text auffordern etwas einzugeben, sonst weiss der User ja nicht was er eingeben soll. Zahl oder Text..
    Dann nutzt du die scanf() und weist das einer Variable value zu und nutzt wieder printf() um die Multiplikation auszufuehren. Das kannst du direkt in der printf() machen. Die kann auch rechnen.
    Etwa so:

    
    

    #include <stdio.h>

    int main()
    {
    uint8_t zahl = 2;

    printf("Gib Zahl > 0: ");
    scanf("%d", value);

    printf("Die Zahl %d mal %d ist:", value, zahl);

    return(0);
    }
    [/code]

    Ich habe jetzt die Doku nicht gelesen, aber vergewisser dich nochmals wegen den Appostrophen und genauer Syntax in den Funktionen, wie diese anzugeben sind.



  • da war jemand schneller 😮

    und ich habe vergessen die value zu deklarieren.



  • buell schrieb:

    printf("Die Zahl %d mal %d ist:", value, zahl);
    

    Jetzt sollte man die Zahl nur auch noch berechnen falls sie größer gleich und nicht nur größer 0 ist:

    int value = 0;
    while(1) 
    {
    	printf("Gib eine Zahl >= 0 ein: ");
    	if( scanf("%d", &value) && value >= 0 )
    		printf("Die Zahl %d mal 2 ist: %d\n\n", value, value*2 );
    	else
    		break;
    }
    

Log in to reply