[ Danijel Bulic @ 12.01.2010. 17:48 ] @
Code:
#include <stdio.h>

int max (char tekst[])
{
    int br = 0, i, max;
    for (i=0;tekst[i]!='\0';i++)
        if (tekst[i]!=' ')
            br++;
        else  {
            max = br;
            br = 0;
              }
        return max;
}

int main ()
{
    char tekst[120];
    scanf ("%s", tekst);
    printf ("Najduza rijec ima %d znakova", (max));
    return 0;
}


Moze li pomoc, nesto mi ne radi ?
[ Picsel @ 12.01.2010. 22:38 ] @
Prva greska, scanf ucitava samo do sledeceg praznog mesta/nove linije/EOF karaktera, tako da ti ucitavas samo prvu rec.
Druga greska je sto ispisujes (max), a treba da ispises max(tekst), odnosno moras da prosledis parametar funkciji.
Treca greska ti je u funkciji, pre nego sto stavis max=br, moras da proveris da li je br>max.

Evo kako bi kod trebao da izgleda tvoj kod ispravljen
Code:
#include <stdio.h>

int max (char tekst[])
{
    int br = 0, i, max=0;
    for (i=0;tekst[i]!='\0';i++)
        if (tekst[i]!=' ')
            br++;
        else {
            if (br>max) 
              max = br;
            br = 0;
              }
    if (br>max)
      return br;
    else     
      return max;
}

int main ()
{
    char tekst[120];
    gets(tekst);
    printf ("Najduza rijec ima %d znakova", max(tekst)); 
    return 0;
}


Gets ucitava ceo red. Takodje, dodao sam na kraju funkcije proveru da li je br>max, da bi se i poslednja rec uzela u obzir (jer nema razmaka na kraju, pa se mora proveriti van petlje da li je poslednja rec veca od maximalne).

Naravno, ovo sve bi moglo malo elegantnije da se napise.
[ Danijel Bulic @ 13.01.2010. 12:34 ] @
Hvala puno, razumijem sada.