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.
-
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.