Additionsprogramm mit Zufallszahlen



  • Hallo Liebe Community, ich stecke seit 1 ganzen Tag an diesem Programm fest.
    Ich soll ein Additionsprogramm Schreiben das Zufällige Zahlen ausgibt und der Benutzer sie richtige eingeben muss, insgesamt soll dies 10 mal passieren.
    Danach soll die nächste Aufgabe gerechnet werden.
    Nun stecke ich aber selber in der Funktion fest die ich schreiben soll... mit einer Schleife, über eine Tipp oder Gar hilfe in meinen Programm würde ich mich freuen.

    //Übung 5 Aufgabe 1 Lernprogramm zum Kopfrechnen
    //Autor Burak Ücöz
    //27.10.2013
    
    //Einbinden der Bibliothek und Funktion
    #include<stdio.h>
    #include<stdlib.h>
    
    //Deklaration der Funktionen
    void uebe_addition(void);
    
    //Hauptfunktion 
    void main(void)
    {
    	//Deklaration der Hilfsvariabel seed, mit der der Zufallszahlgenerator initialisiert wird
    	int seed;
    
    	//Wertzuweisung mit einer Tastatureingabe 
    	printf("Initialisieren Sie bitte den Zufallszahlgenerator mit einer ganzen Zahl:\n");
    	scanf_s("%i",&seed);
    
    	//Initialisierung des Zufallszahlgenerators 
    	srand(seed);
    
    	//Aufruf der Funktion Addition
    	uebe_addition();
    }
    
    //Zuweisung der Funktion
    void uebe_addition(void)
    {
    	//Variabeln Deklaration
    	int summand_1=rand()%200;
    	int summand_2=rand()%200;
    	int summe;
    
    	//Schleifenbedinung Schleifenanfang für die Addition
    	do
    	{
    
    		printf("%i + %i\n",summand_1,summand_2);
    		printf("Bitte geben die das Ergebniss ein \n");
    		scanf_s("%i", &eingabe);
    
    	}
    	while(summe);
    }
    [code][code="cs"]
    


  • Jetzt habe ich es fast raus, aber die Bedinung um aus der Schleife Raus zu kommen... was könnte man da einfügen?



  • ,

    so hab ichs gemacht:

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    
    void main(){
    
    float zahl,zahl2;
    float eingabe;
    int i=0;
    
    for(;i<10;i++){
            srand (time(NULL));
            zahl=rand()%200+1;
            zahl2=rand()%200+1;
            printf("wie viel ist %.2f plus %.2f?\n",zahl,zahl2);
            eingabe=0;
            scanf("%f",&eingabe);
            if(eingabe != (zahl+zahl2)  ) printf("falsche Eingabe, %.2f waere richtig",(zahl+zahl2));}
    }
    


  • falsches Subforum => C



  • Dieser Thread wurde von Moderator/in Dravere aus dem Forum C# und .NET in das Forum C (C89, C99 und C11) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


  • Mod

    Sieht doch ganz ok aus. Ein paar Bemerkungen:
    -Der Rückgabetyp von main muss laut Standard int sein.
    -srand solltest du nur einmal pro Lauf aufrufen. Mach's einfach ganz am Anfang der main.
    -Da deine gezogenen Zufallszahlen allesamt ganzzahlig sind, wäre es wohl passender, auch Ganzzahlen (int oder ähnliches) als Typ der Variablen zu wählen.
    -Die Zeile 16 ist ein bisschen komisch, vermutlich willst du falsch Eingaben abfangen? Dafür wäre jedoch der Rückgabewert von scanf da, den du prüfen solltest, bevor du die Eingabe weiterverarbeitest.



  • SeppJ schrieb:

    Sieht doch ganz ok aus. Ein paar Bemerkungen:
    -Der Rückgabetyp von main muss laut Standard int sein.
    -srand solltest du nur einmal pro Lauf aufrufen. Mach's einfach ganz am Anfang der main.
    -Da deine gezogenen Zufallszahlen allesamt ganzzahlig sind, wäre es wohl passender, auch Ganzzahlen (int oder ähnliches) als Typ der Variablen zu wählen.
    -Die Zeile 16 ist ein bisschen komisch, vermutlich willst du falsch Eingaben abfangen? Dafür wäre jedoch der Rückgabewert von scanf da, den du prüfen solltest, bevor du die Eingabe weiterverarbeitest.

    #include<stdio.h>
    int main(){
    
    srand (time(NULL));
    int zahl,zahl2;
    int eingabe;
    int i=0;
    
    for(;i<10;i++){
            zahl=rand()%200+1;
            zahl2=rand()%200+1;
            printf("wie viel ist %i plus %i?\n",zahl,zahl2);
            scanf("%i",&eingabe);
            if(eingabe != (zahl+zahl2)  ) printf("falsche Eingabe, %i waere richtig\n",(zahl+zahl2));}
    return 0;
    }
    


  • Cool Danke euch :).

    Langsam macht es spaß..
    Ich glaube ich muss noch viel viel Funktionen üben. 🙂


Anmelden zum Antworten