Programmieren - alles kontrollieren 4.939 Themen, 20.672 Beiträge

Hilfe bei meinen Hausaufgaben!!

Anonym / 7 Antworten / Flachansicht Nickles

Hi,


habe folgende Aufgabe und habe als C Anfänger keine Ahnung.... folgendes Programm erzeugt nach Eingabe von "Bargeld" und "Samen" (keine Ahnung wieso das so heißt) Zufallszahlen... ist es eine gerade Zufallszahl wird das Bargeld erhöht-  ansonsten erniedrigt... die Aufgabe ist nach jeder Ausgabe des aktuellen Bargeld-Standes eine Reihe Sterne (*) auszugeben, die den Restbestand des Bargeldes anzeigt..(mit einer while-Schleife)..


Ich habe schon versucht die Schleife einzubauen und die Variable "counter" definiert... aber ich bekomme eine Endlos-Schleife die nur Sterne schreibt. Kann mir jemand helfen?


Hier ist der Quelltext:


#include <stdio.h>
#include <stdlib.h>


int main( void )
{
      int bargeld, samen; int counter=1;


      printf("Bargeld = " ); scanf( "%d", &bargeld );
      printf("Samen = " ); scanf( "%d", &samen );


    /* Hier wird der Zufallszahlen-Generator mit
       einem Anfangswert initialisiert  */
      srand( samen );


      while ( bargeld > 0 )
      {
           bargeld = rand()%2? ++bargeld : --bargeld;
           printf ( "%d" , bargeld );
          
           while ( counter <= bargeld )
           {
                printf ("*"); 
                counter=counter++;
           }
           printf ("\n");
      }
      printf( "\n You are a great loser! \n\n" );


      return 0;
}

bei Antwort benachrichtigen
Andreas42 Anonym „Hilfe bei meinen Hausaufgaben!!“
Optionen

Hi!

Die Zufallsfunktionen im EDV-Programmierumfeld benötigen einen Startwert, der sie initialisiert. Für den gleichen Startwert leifern sie im Normalfall immer die gleiche Folge von Zufallszahlen.

Irgendein Denker oder Entwickler hat diesen "Zufallsinitialisierungswert" wohl mal als "seed" bezeichnet, was in der deutschen Übersetzung tatsächlich "Samen" bzw. "Saat(gut)" bedeutet. Mein Dictionary kennt aber noch eine etwas weitreichernde Beschreibung: "the beginning or initial germ of developement" z.B. "seeds of doubt", wobei es auch den "seed crystal" gibt, das ist der kleine winzige Kristal, an dem sich dann Eisflocken oder vergleichbares bildet.

Ein Problem sehe ich in deiner Schlöeife schon: die Sysntax zum Hochzählen des Counters lautet entweder

counter = counter + 1

oder nur

counter++

Was i=i++ liefert, ist eine der Sachen, denen ich gerne aus dem Weg gehe. ;-)
Ich hab' mir bisher noch nicht die Müphe gemacht, mich so tief in die Operatoren von C reinzuknien, um jede Variante zu verstehen...

Ich hab' gerde mal etwas gesucht und eine FAQ gefunden, die darauf eingeht (Link). Zum Glück scheint das ein undefinierter Ausdruck zu sein, ich muss mir also keine tieferen Gedanken darüber machen und darf das wieterhin ignorieren bzw. weglassen. ;-)

Bis dann
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen