Hádání čísel - smyčka proběhene 2x – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Hádání čísel - smyčka proběhene 2x – C / C++ – Fórum – Programujte.comHádání čísel - smyčka proběhene 2x – C / C++ – Fórum – Programujte.com

 

Ryan99
~ Anonymní uživatel
15 příspěvků
23. 8. 2015   #1
-
0
-

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

Nahlásit jako SPAM
IP: 88.100.30.–
Ryan99
~ Anonymní uživatel
15 příspěvků
23. 8. 2015   #2
-
0
-

#1 Ryan99
Ještě dodám že to takto nefunguje, je nutné char odpoved[1] změnit na char odpoved. Také netuším proč. Potřebuji přece snímat pouze jeden znak...navíc nepomůže ani odpoved[2]...

Nahlásit jako SPAM
IP: 88.100.30.–
KIIV
~ Moderátor
+43
God of flame
23. 8. 2015   #3
-
0
-

1. Ano, enter tam vadi.

2. Uplne blbe pocitas tu polovinu intervalu... kdyz zadas min 50 a max 100, tak se zacina Je Vase cislo 25?

3. char odpoved[1] je taky pitomost.. Hlasilo mi to porovnavani s pointerem

Nahlásit jako SPAM
IP: 94.113.92.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Ryan99
~ Anonymní uživatel
15 příspěvků
23. 8. 2015   #4
-
0
-

S 2. máte pravdu, promyslím to tedy jinak. Co se týče:

1) Jak to můžu eliminovat? Napadá mě jedině použít int a vyžadovat zadání 1,2,3. Existuje nějaká možnost jak používat znaky a enter vynechat?

3) Můžu tedy použít jen char odpoved?

Nahlásit jako SPAM
IP: 88.100.30.–
Ryan99
~ Anonymní uživatel
15 příspěvků
23. 8. 2015   #5
-
0
-

Tak vyřešeno, stačí přidat mezeru do scanf(" %c").

Nahlásit jako SPAM
IP: 88.100.30.–
KIIV
~ Moderátor
+43
God of flame
23. 8. 2015   #6
-
0
-

#4 Ryan99
3) ano pouzit jen  char odpoved  je resenim (ci pracovat spravne s tim polem.. do scanf predat jen odpoved misto &odpoved a dal s tim pracovat jako  odpoved[0])

Nahlásit jako SPAM
IP: 94.113.92.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 41 hostů

Podobná vlákna

Hadani — založil Malirka

Program na "hádání" — založil jumbo

Hra na hadani cisla C++ — založil ondrej

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý