Für welche CPU?SchneiderWeisse hat geschrieben:wie wäre es mit einer Assembler-Lösung?
HILFE!! Hausaufgabe/ zahlenrate programm!!
Ja stimmt, danke ! Ich weiß, mein C ist nicht besonders gut, auch wenn ich mich hin- und wieder daran versuche .@abgdf: `time()` wird in `time.h` deklariert. Bei dem Programm macht es nichts aus, aber `srand()` sollte man nur einmal aufrufen. So wie es jetzt aussieht, hängt jede Zufallszahl von der aktuellen Zeit ab und nicht mehr vom Zufallszahlengenerator.
@Roberta:
Wenn man allerdings eines Tages morgens aufwacht und sowas von sich gibt, sollte man wieder etwas mehr mit Menschen reden ...
Gruß
Dann ist es von der LLVM "CPU" abhängig. Das ist genau so abhängig oder unabhängig wie 6510-Assembler, den kann ich ja auch im Emulator auf anderen CPUs laufen lassen.
Und hier eine Lösung in JavaScript: http://paste.pocoo.org/show/98444/
@BlackJack: Hast Du bei Deiner C-Lösung einmal z.B. "a" eingegeben? Bei mir (Watcom-C unter Windows XP) hängt das Programm dann in einer Endlos-Schleife. Erst ein fflush(stdin) verhindert das. Meine Variante, die zusätzlich noch falsche Eingaben abfängt, ist hier.
MfG
HWK
MfG
HWK
@TrundleAlso offensichtlich (zumindest bei Watcom) nicht undefiniert. MSVC verhält sich übrigens genauso.
MfG
HWK
Code: Alles auswählen
Description:
If the file fp is open for output or update,
the fflush function causes any unwritten data to be written to the file.
If the file fp is open for input or update,
the fflush function undoes the effect of any preceding ungetc operation on the stream.
If the value of fp is NULL, then all files that are open will be flushed.
MfG
HWK
@HWK: Aber nur bei Watcom. fflush(3) sagt: "EBADF - Stream is not an open stream, or is not open for writing" und beruft sich auf C89 und C99. Und C99 sagt in 7.19.5.2: "the behaviour is undefined", wenn der Stream kein Ausgabestream ist bzw. kein Updatestream, in den zuletzt geschrieben wurde.
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
- sebastinas
- User
- Beiträge: 7
- Registriert: Mittwoch 7. Januar 2009, 20:29
Deine und BlackJacks-Variante enden in einer Endlosschleife (gcc 4.3/Linux). http://faq.cprogramming.com/cgi-bin/sma ... 1043284392 für funktionierende Varianten.HWK hat geschrieben:Nicht nur in Watcom, sondern zumindest auch in MSVC. Läuft denn BlackJacks Code mit anderen C-Compilern bei Eingabe einer "Nichtzahl" problemlos? Vielleicht ist das ja Windows-spezifisches Verhalten.
Abgesehen davon heißt's int main *hust*
- sebastinas
- User
- Beiträge: 7
- Registriert: Mittwoch 7. Januar 2009, 20:29
Ach, ich hab' vergessen, dass platform-unabhängigkeit von gestern ist.BlackJack hat geschrieben:@sebastinas: Rückgabe eines `int` macht auf'm C64 keinen Sinn.
Wenn ich `void` angebe erwarte ich, dass Compiler für Plattformen, die einen Rückgabewert auswerten, dort ein implizites EXIT_SUCCESS liefern. Sehe also kein Problem mit der plattformunabhängigkeit, aber ein paar gesparte Bytes. Bei einem PET mit 8 KiB RAM wird das schon ein wenig eng.
- sebastinas
- User
- Beiträge: 7
- Registriert: Mittwoch 7. Januar 2009, 20:29
Und das ist einfach falsch. Wenn dort kein int steht, ist es implementation-defined. Dein Programm baut dann unter Umständen auf einer Platform gar nicht. Außerdem geht es nicht darum, was du vom Compiler erwartest, sondern er bzw. der Standard von dir. Und dann ist die einzige portable Möglichkeit eben ``int main``.BlackJack hat geschrieben:Wenn ich `void` angebe erwarte ich, dass Compiler für Plattformen, die einen Rückgabewert auswerten, dort ein implizites EXIT_SUCCESS liefern. Sehe also kein Problem mit der plattformunabhängigkeit, aber ein paar gesparte Bytes. Bei einem PET mit 8 KiB RAM wird das schon ein wenig eng.
Wie wärs mit ner Runde Golf?
Biete zum Auftakt 100 Zeichen:
Das geht auf jeden Fall noch kleiner...
MFG HerrHagen
Regeln:
Zufallszahl 0..100
Python 2.5
Output wie beim obigen Beispiel
Biete zum Auftakt 100 Zeichen:
Code: Alles auswählen
r=id(9)%101
while 1:
g=input()
if g==r:print"geschafft";break
print["zu klein","zu gross"][g>r]
MFG HerrHagen
Regeln:
Zufallszahl 0..100
Python 2.5
Output wie beim obigen Beispiel
Code: Alles auswählen
r=id(9)%101;a=1
while a:
g=input();a=g!=r;print["geschafft",["zu klein","zu gross"][g>r]][a]
92
Code: Alles auswählen
r=id(9)%101;a=1
while a:g=input();a=g!=r;print["geschafft",["zu klein","zu gross"][g>r]][a]