Ich dreh am Rad

ElFunghi

Erfahrenes Mitglied
Hi @all,
ich bin noch ein ganz neuer Newbie im C programming!!(Also lacht mich nicht aus obewohl ich das bei der Frage fast selbst machen würde!)

Also, ich will , nur zum einstieg, ein prog scripten das die eingabe auswertet!
Beispiel:
2 mal 2 ergibt 4!(Ja oder Nein): Ja
Richtig!
**************
2 mal 2 ergibt 4!(Ja oder Nein): Nein
Falsch!

Gut das ergebnis was ich dann bekommen habe, war dann das ich eingeben konnte was ich wollte und es stand immer Richtig! da *lol*

Bidde HELP!

thx
ElFunghi:)
 
Code:
#include <stdio.h>

void main(){
  int zahl1=2,zahl2=2,erg=4;
  char jn='';
  char stimmt=0;

  printf("%d mal %d ergibt %d",zahl1,zahl2,erg);
  scanf("j/n:%c",&jn)

  if ((zahl1*zahl2)==erg)stimmt=1;

  if ((stimmt==1 && jn=='j') || (stimmt==0 && jn=='n'))
    printf("RICHTIG");
  else
    printf("FALSCH");
}

hab das mal fix zusammengeschrieben
bin aber grad an nem fremden rechner und hab daher keinen gnu zur hand, dürfte aber soweit funktionieren!
 
hmm

gut danke jOki allerdings, ich hatte gesagt das ich newbie bin, bin erst auf seite 152 von 1050! in meinem "büchlein" deshalb.
ich hab das eingetippt und der compiler meinte dann :

prog.c: In function `main´:
prog.c:5: empty character constant
prog.c:11: parse error before `if´
prog.c:3: warning: return type of `main´ is not `int´

gut, ich würde die fehler ja selbst suchen wenn ich wüsste was es für welche wären!
wäre nett wenn du mir nochma helfen würdest, aber danke dir!!!!!:)

THX
ElFunghi:)
 
hmm - Die Zweite

Ich wusste gar nich das so n popel prog. so viel ärger machen kann weil:

Compiliert hat ers jetzt allerdings wenn ich "j" eingeben für ja steht da "FALSCH" !? ich hab mir deinen code auch nochmal genau angeguckt und es müsste eigentlich funktionieren!?
KOMISCH:eek:

Was könnten wir da noch machen??

dickes THX
ElFunghi:)
 
Das liegt an der Zeile mit dem scanf();
Der korrekte Aufruf lautet:
int scanf( const char *format [,... );
Bei scanf() wird also nichts ausgegeben, sondern nur eingelesen, darum ist ein Aufruf der Form scanf("j/n:%c", &jn); logisch fehlerhaft.
Hier mal ein korrekter Quellcode:
Code:
#include <stdio.h>

void main(){
  int zahl1=2,zahl2=2,erg=4;
  char jn=0;
  bool stimmt=false;

  printf("%d mal %d ergibt %d\nj/n:",zahl1,zahl2,erg);
  scanf("%c", &jn);

  if ((zahl1*zahl2)==erg)stimmt=true;

  if ((stimmt && jn=='j') || (!stimmt && jn=='n'))
    printf("RICHTIG");
  else
    printf("FALSCH");
}
 
hi,
der Variablentyp 'bool' muss aber nicht immer standart sein...
Beispiel wäre TurboC bzw. Ansi-C.
Eine Möglichkeit wäre dann zum Beispiel die Variable stimmt als
int stimmt = 0;
und damit als einen normalen integer - Wert zu benutzen oder ebend
char stimmt = '';
und damit als character-zeichen indem sowas wie 'j' oder 'n' gespeichert wird.

... Jedenfalls mach ich das immer so in den alten DOS-Umgebungen :)
Ich hoffe das hat nen kleines bissl geholfen.

Greets, Zyrkon
 
Meine Fresse,
wusste gar nich das das sooo schwierig sein kann, naja das kann ja noch was werden !
gut ich tschecke *gg* das prog von reime mal.

tha
ElFunghi:)
 

Neue Beiträge

Zurück