Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Za svaku riječ isprintati onoliko * koliko je riječ duga

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Za svaku riječ isprintati onoliko * koliko je riječ duga

[ Pregleda: 1817 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ice-D

Član broj: 203571
Poruke: 33
*.adsl.net.t-com.hr.



Profil

icon [Zadatak] Za svaku riječ isprintati onoliko * koliko je riječ duga05.12.2008. u 11:09 - pre 187 meseci
Code:
#include <stdio.h>
int main()
{
    int ch;
    int cnt = 0;
    int i;
    while ( (ch = getchar () ) != EOF )
    {
        cnt++;
        if ( ( ch == ' ' ) || '\n')
        {    
            for ( i = 0; i < cnt; i++ )
                printf ( "*" );
            printf ( "\n" );
            cnt = 0;
        }
    }
    return 0;
}

U zadatku se traži: za svaku riječ isprintati onoliko * koliko je riječ duga. Što mene muči? Ja pokrenem debager, dođem do while ( (ch = getchar () ) != EOF ) unesem naprimer: asdb ght rb , stisnem ENTER, dođem do if ( ( ch == ' ' ) || '\n') provjerava se 'a' == ' ' || '\n' i on vrati True!!? i uđe u for petlju, ako napišem u kodu if ( ( ch == ' ' ) dakle bez '\n' vrati false. I nije problem samo u '\n' ako stavim bilo koji znak on vraća True. Koliko sam shavatio Or operator vraća True ako je 1 ili 2 operanta True. Ovde očito oba vraćaju False 'a' == ' ' || '\n'. a nije jednako praznom znaku ni novom redu. Ne želim da mi se riješi zadatak već da shvatim u čemu grešim.
 
Odgovor na temu

Ice-D

Član broj: 203571
Poruke: 33
*.adsl.net.t-com.hr.



Profil

icon Re: [Zadatak] Za svaku riječ isprintati onoliko * koliko je riječ duga05.12.2008. u 11:11 - pre 187 meseci
baš sam budala, zaboravio sam staviti ch == .... if ( ( ch == ' ' ) || ch == '\n').
 
Odgovor na temu

Aleksandar Ilić
Software Developer
Beograd

Član broj: 15867
Poruke: 417

Sajt: www.ailic.rs


+3 Profil

icon Re: [Zadatak] Za svaku riječ isprintati onoliko * koliko je riječ duga09.12.2008. u 21:26 - pre 187 meseci
Ovako je jednostavnije. Program za svako slovo iz alfabeta štampa znak *, za novi red štampa novi red, a za sve ostale znakove štampa prazno mesto.

Code:
#include <stdio.h>
#include <ctype.h>

int main()
{
  int ch;
  
  while ((ch = getchar()) != EOF)
  {
    if (isalpha(ch))
      printf("*");
    else
    if (ch == '\n')
      printf("\n");
    else
      printf(" ");
  }
  
  return 0;
}

„Naposletku, suština saznavanja nije u tome gubimo li igru, već kako je gubimo,
šta time spoznajemo, čemu nas je poraz naučio i kako nas to menja. Gubiti na određen
način znači - dobijati.”

Richard Bach
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Za svaku riječ isprintati onoliko * koliko je riječ duga

[ Pregleda: 1817 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.