Strana 1 z 1

Potrebujem pomoc v C

Napísané: 03 Mar 2021, 14:03
od používateľa tomassksk
Vedel by mi niekto pomoc ? Potrebujem to v while a C. Napíšte program, ktorý číta znaky z klávesnice až kým nenájde 'X'. Potom vypíše, koľko z prečítaných znakov boli znaky 'A'.

Re: Potrebujem pomoc

Napísané: 03 Mar 2021, 14:05
od používateľa misocko
Prvykrat na fore? Zmen si nazov temy. (Pravidla fora si urcite cital)

Re: Potrebujem pomoc v C

Napísané: 03 Mar 2021, 14:50
od používateľa Palcino22
Je to práca na minútku, určite však je potrebné si naštudovať ako to funguje, pretože nie vždy to niekto napíše za teba. Určite nie je zlé skusiť trošku pogoogliť, z týchto "učebnicových" zadaní je prakticky každé už niekde vypracované a aj popísané, ktorý príkaz ako funguje.

Kód: Vybrať všetko

#include <stdio.h>
int main(void){
int c;
int pocitadlo=0;

printf("Zadaj znaky a potvrd [ENTER]: ");
while(c!='X'){
    c = getchar( );
    if (c=='A') pocitadlo++;
}
printf( "Zadal si znak 'A': %u krat",pocitadlo);
return 0;
}

Re: Potrebujem pomoc v C

Napísané: 03 Mar 2021, 15:28
od používateľa maskrtnik01
Podľa mňa ešte chýba počiatočná hodnota c. Čo ak čírou náhodou bude na mieste v pamäti, kde sa naalokuje c, hodnota 'X'? Nie že by to bolo pravdepodobné, ale predsa.

Alebo použiť cyklus s podmienkou na konci (známy ako do-while).

Re: Potrebujem pomoc v C

Napísané: 03 Mar 2021, 17:35
od používateľa budvar10
Je to pravdepodobné! => do-while

Re: Potrebujem pomoc v C

Napísané: 03 Mar 2021, 17:43
od používateľa maskrtnik01
Tak na jeden bajt v pamäti je 256 možností, kritická je tu jedna.

Určite ale netreba zabúdať na správnu inicializáciu premenných. Pri vyšších jazykoch zvykne premennú vynulovať runtime. Ale pri Cčku sa jej kompilátor ani nedotkne, keď mu neprikážeme. Takže čítať premennú skôr, ako do nej niečo zaručene zapíšeme je lotéria.

Re: Potrebujem pomoc v C

Napísané: 03 Mar 2021, 18:22
od používateľa budvar10
Myslím, že kompilátor vygeneruje warning.

Re: Potrebujem pomoc v C

Napísané: 03 Mar 2021, 19:14
od používateľa mac26
nope

Re: Potrebujem pomoc v C

Napísané: 03 Mar 2021, 19:20
od používateľa dan21
Asi ste niekomu vyriesili domacu ulohu :-) :-)

Re: Potrebujem pomoc v C

Napísané: 03 Mar 2021, 20:05
od používateľa Radus
...ale premenná c ako int... njn. Ako v zásade sa dá, ale aj tak...kole mi to oči :)

Re: Potrebujem pomoc v C

Napísané: 03 Mar 2021, 20:46
od používateľa mac26
To by aj bolo OK, getchar vracia int:
This function returns the character read as an unsigned char cast to an int or EOF on end of file or error.
EOF je int. Nic ale nebrani tomu pouzit signed char.
Mne skor vadi pocitadlo ako signed a absencia koncov riadkov.
Vsetko su to ale v tomto pripade skor kozmeticke veci...

Re: Potrebujem pomoc v C

Napísané: 05 Jún 2021, 14:44
od používateľa Mishung
Je mi jasné, že už to nie je aktuálne ale ak by sa na to pozeral nejaký nováčik v budúcnosti tak pridám ešte jednu trochu expresívnejšiu variantu:

Kód: Vybrať všetko

#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>

int main()
{
    bool userEnteredX = false;
    char userInput = '\0';
    size_t numOfA = 0;

    // ask user for an input while X is not found
    printf("Zadaj znak alebo 'X' pre ukoncenie:\n");
    while (false == userEnteredX)
    {
        userInput = getchar();
        // increment 'A' counter if 'A' has been entered
        if ('A' == userInput)
        {
            numOfA++;
        }
        // has 'X' been entered?
        if ('X' == userInput)
        {
            userEnteredX = true;
        }
    }
    printf("'A' si zadal %u krat\n", numOfA);
    return 0;
}