Új hozzászólás Aktív témák
-
dudika10
veterán
Üdv!
Egy hozzáértő számára szerintem egyszerű kérdésem volna. Elkezdtem ismerkedni a C-vel (MS Virtual Studio 2010 segítségével), és a bináris keresésre épülő egyszerű játékot szeretnék csinálni.
while(x!=1)
{
tipp=((min + max )/a);
printf("Ez a szam a %d ? \n", tipp );
scanf("%c", &valasz);
if(valasz =='=')
x=1;
else if(valasz == '<')
min=tipp;
else if(valasz == '>')
max=tipp;
else if(valasz != '>' && valasz != '<' && valasz != '=' )
printf("Kerlek valaszolj, vagy nem tudok tovabblepni! \n");
/* Nem működik jól. A scanf után úgy veszi, mintha nem történt volna semmi, visszaugrik a ciklus elejére, végrehajtja a printf-t, és újra a scanf jön. */
}Ahogy az a megjegyzésnél is olvasható, a program majdnem jól működik, de:
Megteszi az első tippet, majd megvárja, hogy válaszoljak (kisebb, nagyobb, egyenlő az általam gondolt szám). Eddig jó. De most jön a de. Megadom a választ, nyomok egy entert, majd kiírja az új tippet, jönne egy scanf, de azt mondja, hogy nem adtam meg tippet, és az utolsó else if-re ugrik, majd újra kiírja a tippet, jön a scanf és itt már megvárja, amíg beviszem az adott karaktert.Valaki meg tudná mondani, hogy hol a hiba?

szerk.: azt elfelejtettem leírni, hogyha az utolsó else if nincs, akkor scanf után a scanf-re ugrik. Az utolsó else if pont ezért (is) került bele, hogy megnézzem, hogy miért ugrik oda, és a működésből arra következtettem hogy azért, mert az első beolvasást üresnek veszi.
Előre is köszönöm a választ!

Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- HP EliteBook 640 G9 - i5-1235U 16GB 512GB 1 év garancia
- Xiaomi Redmi Note 12 Pro+ 256GB, Kártyafüggetlen, 1 Év Garanciával
- HP ZBook Firefly G9 - 14" hibás kijelző, i7 1255U, 16GB RAM, Nvidia T550 4GB VGA, hiányos bill.
- Konzol felvásárlás!! Playstation 5, Playstation 5 Pro
- MacBook Air 13" M2 16gb ram/256gb ssd 27% Áfás (0357AB)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


