Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Zufallszahlen - Zahlenlotto in C

Mitglied: Butterblume

Butterblume (Level 1) - Jetzt verbinden

08.06.2007, aktualisiert 14:04 Uhr, 11026 Aufrufe, 2 Kommentare

9.Juni 2007 00:30

Ich habe jetzt das Programm fertig:
01.
//Programm wurde von Kristina Stepanova erstellt// 
02.
//Zahlenlotto, 6 Zufallszahlen werden ausgegeben// 
03.
 
04.
#include <stdio.h> 
05.
#include <math.h> 
06.
#include <time.h> 
07.
#include <stdlib.h> 
08.
 
09.
void zufallszahl(int max); 
10.
 
11.
int main(void) 
12.
{	int n; 
13.
	printf ("Modul 118: Zahlenlotto\n"); 
14.
	printf ("______________________\n\n"); 
15.
    printf("Bitte Maximum groesser als 6 eingeben: "); 
16.
	scanf("%d", &n); 
17.
 
18.
	printf("\nEingabe: %d\n", n); 
19.
        if (n <= 6) { 
20.
   	         printf("\nEingabe zu klein.\n"); 
21.
  	 	system("pause"); 
22.
                return 3; 
23.
24.
	zufallszahl(n); 
25.
        system("pause"); 
26.
	return 0; 
27.
}  
28.
 
29.
void zufallszahl(int max) 
30.
31.
	int i, zufall, j, found; 
32.
	int resultat[6], geworfen[6]; 
33.
		 
34.
	for (i = 0; i < 6; i++) 
35.
		resultat[i] = 0; 
36.
	for (i = 0; i < 6; i++) 
37.
38.
		srand(time(NULL) + i); 
39.
		geworfen[i] = zufall = rand() % max+1; 
40.
		for(j = 0, found = 0; j < 6; j++) 
41.
42.
			if (zufall == geworfen[j]) 
43.
				found++; 
44.
45.
		if (found > 1) 
46.
			i--; 
47.
		else 
48.
			resultat[i] = zufall; 
49.
50.
		 
51.
	printf("\nZufallszahlen:\n\n"); 
52.
	for (i = 0; i < 6; i++)  
53.
		printf("%d ", resultat[i]); 
54.
	printf("\n\n"); 
55.
}
Es läuft auch, alles supää...ich habe noch Struktogramm (ich weiss man sollte es vorher und nicht nachher machen) zu diesem Programm geschrieben und bin mir bei einigen Sachen nicht ganz sicher (vorallem wegen der Funktion).
Ich habe 2 Struktogrämme gemacht, weiss eben nicht, ob man in einem das machen kann. Würde mich sehr freuen, wenn mir jemand helfen könnte.

Liebe Grüsse, Kristina

main:
53694aeda4162f59a9425f02ad2e7852-main - Klicke auf das Bild, um es zu vergrößern

zufallszahl:
154039ea0adc1fbca6ed539900f5abc6-zufallszahl - Klicke auf das Bild, um es zu vergrößern
....................................................................................................................................................




Hallo Miteinander, ich möchte ein Programm schreiben, in dem man die höchste Zahl selber eingeben kann und 6 Zufallszahlen sollen dabei ausgegeben. Die vorgeschlagene Zahl sollte nicht zweites mal vorkommen.
Dies sollte ich mit einer Funktion machen.

Name der Funktion: Zufallszahl
Eingabe: n /*höchste zu "würfelnde Zahl*/
Ausgabe Resultat /*Array für 6 Zahlen*/

Die Zufallszahl sollte mit:

srand(time(0));
z=rand();

erzeugt werden.

Ich habe nicht wirklich eine Ahnung, wie ich das genau programmieren soll. Ich habe aber einfach ein Programm wie eine Skizze geschrieben, das nicht läuft.
Ich hoffe sehr, dass mir jemand helfen könnte.

Liebe Grüsse, Kristina

01.
#include <stdio.h> 
02.
#include <stdlib.h> 
03.
#include <math.h> 
04.
 
05.
int n; Resultat [7]; 
06.
 
07.
int main() { 
08.
 
09.
printf ("\nModul 118: Zahlenlotto"); 
10.
printf ("\n\nBitte hoechste zu wuerfelnde Zahl n eingeben: "); 
11.
scanf ("%i", &n); 
12.
printf ("\n\nEingegeben: %i", n); 
13.
Zahlenlotto(&Resultat); 
14.
printf ("6 Zufallszahlen: %u", Resultat); 
15.
 
16.
system ("PAUSE"); 
17.
return 0; 
18.
 
19.
20.
 
21.
int Zufahlszahl(int n, int Resultat) { 
22.
     
23.
    srand((unsigned)time(0));  
24.
                              for (int x=1, x<=6; x++) { 
25.
                                      int z=rand()%n;   
26.
                                      printf ("%u", z); 
27.
28.
29.
 
EDIT

01.
#include <stdio.h> 
02.
#include <stdlib.h> 
03.
#include <math.h> 
04.
 
05.
int main() { 
06.
 
07.
int n, zufallszahl; 
08.
int resultat[6]; 
09.
 
10.
 
11.
printf ("\nModul 118: Zahlenlotto"); 
12.
printf ("\n\nBitte hoechste zu wuerfelnde Zahl n eingeben: "); 
13.
scanf ("%i", &n); 
14.
 
15.
zufallszahl(resultat); 
16.
resultat[x]=z; 
17.
 
18.
printf ("6 Zufallszahlen: %u", resultat); 
19.
 
20.
system ("PAUSE"); 
21.
return 0; 
22.
 
23.
24.
 
25.
void zufallszahl(int* n, int* resultat) { 
26.
     
27.
    srand((unsigned)time(0));  
28.
                              do { 
29.
                                 int z=rand()*n;   
30.
                                 printf ("%u", z); 
31.
32.
                              while (x<6); 
33.
}
Mitglied: filippg
08.06.2007 um 12:21 Uhr
Hallo,

nur so ein paar Anmerkungen dazu:

1. Resultat[7] scheint mir für 6 Zahlen zuviel zu sein...
2. in deiner Methode/Funktion Zufallszahl: die soll einen int returnen. Ich sehe aber keine return-Anweisung. Warum nicht void als Rückgabetyp?
3. Geschmacksfrage: die for-Schleife läuft von 1 bis 6. Üblich ist eigentlich von 0 bis x < 6 (also bis 5), da eigentlich immer ab 0 gezählt wird (z.B. auch beim Array)
4. Eine for-Schleife ist eher ungeeignet. Du solltest innerhalb der Schleife noch überprüfen, ob die Zahl schonmal getippt wurde, dann kann es sein, dass du mehr als 6 Durchläufe für 6 Zahlen brauchst. Natürlich könntest du, wenn eine bereits getippte Zahl nochmal hast einfach x dekrementieren, aber das ist unsauber. Besser: eine do-while-Schleife, mit while(x < 6), x wird vor Eintritt in die Schleife auf 0 gesetzt und innerhalb der Schleife bei jeder akzeptierten Zahl inkrementiert.
5. du gibst in der for-Schleife jede gefundene Zahl sofort aus. Andererseits hast du in Main auch noch eine Ausgabe "printf ("6 Zufallszahlen: %u", Resultat);". Soll das die Ausgabe sein? Dann solltest du die Werte auch in dem Array Resutat ablegen, also "Resultat[x] = z".
6. Du hast in main() einen Funktionsaufruf "Zahlenlotto(&Resultat);". Soll das die Methode "Zufahlszahl" sein (btw: Zufall schreibt man anders)? Zufahlszahl hat nicht nur einen anderen Namen, sondern eine andere Signatur, erwartet nämlich zwei Parameter. Daneben soll "Resultat" ein int sein, ist aber ja eigentlich ein int*. Ob ein C++-Compiler das schluckt weiß ich nicht mehr, ein int* ist ja formal gesehen auch nur ein int. Ebenso bin ich mir nicht sicher, ob du bei der Übergabe &Resultat oder nur Resultat angeben musst.
7. Daneben sollest du nochmal in der Doku schauen, in welchem Bereich die von rand() gelieferten Zahlen liegen. Meist sind das Zahlen im Bereich von 0 bis 1, damit nützt dir dein %n natürlich nicht viel (besser wäre ein *n).
8. Warum sind n und Resultat eigentlich globale Variablen? Die kannst du doch auch lokal in main() halten. Und warum wird Resultat groß geschrieben, alle anderen Variablen aber klein?

Filipp
Bitte warten ..
Mitglied: Butterblume
08.06.2007 um 14:04 Uhr
Danke für deine grosse Hilfe, ich weiss zwar nicht, wie man die Fuktion genau benutzt oder besser gesagt einbinden kann. Das würde ich sehr gern wissen.
LG, Kristy
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch Zufallszahl begrenzen!
gelöst Frage von FrexedBatch & Shell2 Kommentare

Hallo Leute, Ich möchte in folgendem Code ein Problem lösen. (Eine Zufallszahl begrenzen, z.B.: Die Kommandozeile soll eine Zufallzahl ...

Batch & Shell

Quickie: Zufallszahl via bash wird nicht ausgegeben

gelöst Frage von FA-jkaBatch & Shell5 Kommentare

Ich möchte in einem bash-Script eine Zufallszahl zwischen 10 und 99 generieren: $zufallszahl=$((RANDOM % 90 +10)) echo "Zufallszahl: $zufallszahl" ...

C und C++

Von C auf C++ umsteigen

Frage von jangruC und C++3 Kommentare

Sehr geehrte Community, wie Sie meiner Überschrift bereits entnehmen konnten, habe ich vor von C auf C umzusteigen. Da ...

C und C++

Fehlendes verständiss von C und C++

Frage von zelamediaC und C++8 Kommentare

Hallo, ich wollte mich in nächster zeit mit C auseinandersetzen habe aber vorher eine frage die mich schon immer ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 1 TagWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 1 TagSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 2 TagenDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 2 TagenSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
DSL, VDSL
Mindestgeschwindigkeiten DSL Telekom
Frage von justlukasDSL, VDSL13 Kommentare

Hallo zusammen, Seit diesem Jahr habe ich Verständnisprobleme mit dem Verhalten der Telekom. Wir haben seit einem Jahr VDSL ...

Switche und Hubs
LANCOM-Switch: Probleme (no link) mit SFP-Modulen?
Frage von THETOBSwitche und Hubs9 Kommentare

Hi zusammen, ich habe folgendes Problem: Und zwar habe ich an einem Standort drei Switche verbaut - LANCOM GS-2326P+, ...

Debian
Wie finde ich den betroffenen user
Frage von ProtectedDebian8 Kommentare

Hallo, Wie kann ich den User finden der dies verursacht hat? Betriebsystem ist Debian 7 your Server/Customer with the ...

Voice over IP
Vodafone IP Anlagenanschluss - TK-Anlage einrichten
Frage von BytedreherVoice over IP8 Kommentare

Moin Zusammen, wir hatten gestern bei uns die Umstellung auf den neuen IP Anschluss bei Vodafone. Vodafone IP Anlagenanschluss ...