Dobrý den,
mám jednoduchý program pro hádání čísel. Uživatel si myslí číslo a počítač hádá.
double minimum = 0, maximum = 100;
double interval = maximum - minimum;
double polovina= interval/2;
char odpoved[1];
printf("Myslete si cislo od 0 do 100.\n");
printf("Odpovidejte:\n");
printf("m - mensi, v - vetsi, s - spravne\n\n");
//nekonečná smyčka (dokud 1 nebude 0 -> nikdy)
while(1)
{
printf("Je Vase cislo %.0f?\n",pul);
scanf("%c",&odpoved);
if(odpoved == 'm')
{
maximum = polovina;
interval = maximum - minimum;
polovina= interval/2;
}
else if(odpoved == 'v')
{
minimum = polovina;
interval = maximum - minimum;
polovina= interval/2;
}
else if(odpoved == 's')
{
printf("Ohodl jsem!\n");
return;
}
else
{
}
}
Problém je v použití char, pokud bych použil int, problém je odstraněn, cyklus proběhne až po zadání znaku. Řekl bych že bere zadání i jako enter - mám pravdu? Pokud ano, jak to odflitruji? A druhý problém zřejmě souvisí, program reaguje zpožděně. Pokud zadám že je číslo menší než 50, vypíše že si myslí že číslo je 25. Teď dám větší, ale vypíše 13. Čili zadání se projeví až v dalším cyklu, jak je to možné?
Díky za pomoc