Anonymní profil Rostislav – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Rostislav – Programujte.comAnonymní profil Rostislav – Programujte.com

 

Příspěvky odeslané z IP adresy 109.238.35.–

Rostislav
C / C++ › Scanf ve funkci
8. 4. 2017   #215523

#3 KIIV
Díky moc! Funguje to   

Rostislav
C / C++ › Scanf ve funkci
8. 4. 2017   #215519

#1 Rostislav
Omlouvám se, zdrojový kód funkce jsem vložil nějak blbě.

char Odkryti(char pole[],char skpole[], int delka, int *chyby, int *pokus)
{
	int skryto;
	char pismeno= NULL;
	printf("\n%d. pokus  Zadej pismeno:", *pokus);
	scanf("%c", &pismeno); 

	++*pokus;

	int g = 0;
	for (int i = 0; i < delka; ++i)
	{
		
		if (pole[i] == pismeno)
		{
			skpole[i] = pismeno;
			++g;
		}
	}

	if (g == 0)
		++*chyby;

	int y = 0;
	for (int i = 0; i < delka; ++i)
	{
		if ((int)skpole[i] == 95)
			++y;
	}
	
		


	for (int i = 0; i < delka; ++i)
		printf("%c", skpole[i]);
	printf("\n");


	
	printf("Pocet chyb:!%d\n\n",*chyby, *pokus);

	return y;


}
Rostislav
C / C++ › Scanf ve funkci
8. 4. 2017   #215518

Ahoj, jsem v programování dá se říct začátečník. Abych si procvičil programování, tak jsem si řekl, že si naprogramuji šibenici. Ale setkal jsem se tu s malým problémem(vyřešil jsem ho, že jsem to naprogramoval jinak, ale chci se zeptat, proč to dělá to co to dělá.

Tato funkce má od vás vzít písmeno a zkontrolovat jestli je v poli a když je, tak ho odkryje. Ale setkal jsem se tu s problémem. 

 Když program skočí do funkce, tak příkazem scanf("%c", &pismeno); po nás chce jedno písmeno. To zadám, zbytek funkce funguje dobře a provede se, ale když zavolám funkci znova příkazem z mainu, tak to vynechá příkaz scanf("%c", &pismeno); a nic to po mně nechce zadat, počítá to s minulou hodnotou. Až funkce běží po 3. tak to po mně chce hodnotu, ale když po 4. tak ne. Dělá to pořád dokola, každý druhý volání to vynechá.

V mainu volám funkci cyklem

do
	{
		skryto=Odkryti(slovo, skslovo, delkaslova, &chyba, &pokus);
	} while (skryto != 0);

char Odkryti(char pole[],char skpole[], int delka, int *chyby, int *pokus) {     int skryto;     char pismeno= NULL;     printf("\n%d. pokus  Zadej pismeno:", *pokus);     scanf("%c", &pismeno); 

    ++*pokus;

    int g = 0;     for (int i = 0; i < delka; ++i)     {                  if (pole[i] == pismeno)         {             skpole[i] = pismeno;             ++g;         }     }

    if (g == 0)         ++*chyby;

    int y = 0;     for (int i = 0; i < delka; ++i)     {         if ((int)skpole[i] == 95)             ++y;     }              


    for (int i = 0; i < delka; ++i)         printf("%c", skpole[i]);     printf("\n");


         printf("Pocet chyb:!%d\n\n",*chyby, *pokus);

    return y;


}

 

 

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