@damaltor
Ja, beim musizieren bin ich total der Geizhalz gewesen und hier nun solche Verschwendung. Was soll man da nur von halten. Ich baue auf dich, wenn ich mal Code mit mehr als 3MB posten möchte.
Hallo M1.R,
ja, es werden von den #include's die beiden Funktionen fprintf() und fmod() benötigt.
Es würde dir aber nichts nützen, wenn du das #include wegläßt, ausser das du beim Übersetzten Warnings bekommst, und dein Programm im schlimsten Fall nicht funktioniert.
Die #include-Anweisung holt nur die Information, wie Funktionen aus den Lib's zu benutzen sind, und welche Returnwerte sie liefern. (Deshalb unter anderem auch das #include "asuro.h")
Wenn du nochmal in den von mir geposteten Code oben schaust, findest du auch die 'Bedinungsanleitung' für die beiden Funktion von dir als:
uint8_t zufallbat(void); <-- MIT ;
uint8_t zahl(void); <-- MIT ;
Diese 'Bedinungsanleitung' habe ich noch aufgenommen, um keine Warnings beim Übersetzen zu bekommen. (Die mag ich nicht, da sie teilweise extreme Fehler zur Folge haben können.)
Ich denke, dir werden folgende Funktionsbeschreibung weiterhelfen:
fprintf-Beschreibung. Du solltest dir die da angegebene 'Formatierung' auf alle Fälle ansehen.
fmod-Beschreibung
Das ! vor der fmod-Funktion heisst nur 'nicht'. Also "if ( 'nicht' fmod (...))"
Als Hinweis noch folgendes: Deine Variable Lottozahl ist nun ein Array für 49 Text-Strings mit JE einer maximalen Länge von 5 (6-1) Buchstaben.
Aber warum es zu deiner recht Lottoscheinuntypischen Ausgabe kommt, muss ich erst mal rausfinden. Das muss auf alle Fälle mit dem fmod() zu tun haben.
Ich vermute, dass die Mathe-Lib nicht, bzw. mit Warnings, eingebunden wird. Jedenfalls funktioniert noch alles, solange fmod() nur Zahlen von 0 bis 6 durch 7 teilen muss. Erst ab 8 / 7 wird nicht mehr festgestellt, dass der Rest NICHT 0 ist.
Kannst du bitte mal das von dir benutzte Makefile posten. Da müsste die Lösung zu finden sein.
Bei weiteren Fragen: Nur zu.
Gruß Sternthaler
Lesezeichen