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.