Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

[Zadatak] Malo slovo u veliko, veliko u malo, ...

  • 8 odgovora
  • 4.053 pregleda

Najnovija ↓

[Zadatak] Malo slovo u veliko, veliko u malo, ... 27.05.2009. u 21:45 · pre 212 meseci
izmenjeno 1 put, poslednji put X Files 27.05.2009. u 21:59
  1. X Files27.05.2009. u 21:59zapis iz teksta poruke
#1
Tekst zadatka:
Napisati program na jeziku S u kome će biti definisane dve funkcije. Prva
funkcija slovo() čita sa tastature slovo i ako je to slovo malo vraća isto veliko
a ako je veliko slovo vraća isto malo. Druga funkcija broj() prihvata ceo broj
(kao znak) i vraća broj (kao znak) koji je dopuna prihvaćenog broja do broja 10.
Glavni program prihvata znak sa tastature, prepoznaje da li je broj ili slovo,
poziva odgovarajuću funkciju i prikazuje na ekranu rezultat pozvane funkcije.
Postupak se ponavlja sve dok se ne unese znak koji je različit od broja ili slova.

Moje pitanje je zasto program ne radi normalno kad ubacim petlju :(, evo probajte i Vi pa ako neko zna resenje da mi javi...
Ja sam uradio prvi dio, funkciju "slovo" :
Code:

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

    char slovo (char s);

    main ()
    
{
        char c;
    
        
        while(1)    //Kada uklonim petlju program radi normalno
        {
            
            puts("Unesite neki znak: "); //Posle drugog kruga petlje i nadalje 2 puta se izvrsi ova naredba
            c=getchar();        
            
            if ( isalpha (c) )
            {
                c = slovo (c);
                putchar(c);
                printf("\n");
            }

            else if (isalpha(c) == 0)
            {
                printf("Znak nije slovo\n");
                
            }
    
        }

}
    
    char slovo (char s)

    {
        if (s >= 65 && s <= 90)
        {
            return tolower(s);
        }


        if (s >= 97 && s <= 122)
        {
            return toupper(s);
        }
        
        return s;

    }

/* Koji je problem zasto se petlja normalno ne izvrsava??? */
Re: [Zadatak] Malo slovo u veliko, veliko u malo, ... 27.05.2009. u 21:59 · pre 212 meseci #2
Brate nisam bas najbolje razumeo sta si hteo na napises ali iz primera vidim da si napravio beskonacnu petlju. Moras petlji lepo da zadas uslov dokle se petlja vrti. Npr while(i<10) kad je ovako napisana petlja ona ce se izvrsavati sve dok je i manje od 10 kada uslov nije tacan ona prestaje sa radom e sad za to sto si ti hteo da uradis to je malo komplikovanije od onoga sto si ti hteo.
Potpis
Ako te snadje muka pozovi hajduka
Pazi se hajduka ako ga snjadje muka
Re: [Zadatak] Malo slovo u veliko, veliko u malo, ... 27.05.2009. u 22:13 · pre 212 meseci #4
pa brate ova prva petlja while(1) to ti je beskonacna petlja i sam kazes kad nju uklonis ono radi ok probaj da je bolje formulisesh ili nemoj da je koristis. Ajde kad budem imao vreme probacu da vidim gde zapinje
Potpis
Ako te snadje muka pozovi hajduka
Pazi se hajduka ako ga snjadje muka
Re: [Zadatak] Malo slovo u veliko, veliko u malo, ... 31.05.2009. u 20:55 · pre 212 meseci #5
Code:

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

char slovo (char s);

void main ()

{
        char c;


        while(1) 
        {

            puts("Unesite neki znak:");
            scanf(" %c", &c);  //stavio sam scanf sa razmakom ispred %c jer sam imao slican problem sa ucitavanjem

            if ( isalpha (c) )
            {
                c = slovo (c);
                putchar(c);
                printf("\n");
            }

            else if (isalpha(c) == 0)
            {
                printf("Znak nije slovo\n");
                break;    //ovde zavrsava program ako se unese neki znak
            }

        }

}

    char slovo (char s)

    {
        if (s >= 65 && s <= 90)
        {
            return tolower(s);
        }


        if (s >= 97 && s <= 122)
        {
            return toupper(s);
        }

    }


Sada bi trebalo da radi, jos samo dodaj funkciju za broj i jedan if izmedju ova dva gde ces proveravati da li je broj i to je to :)
I imao si jedan return viska u ovoj funkciji slovo koliko mi se cini :)

Pozdrav Lestrigonac
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme