You are on page 1of 14

1.

Napisati program koji za uneti petocifren broj n (n>0) odredjuje broj


parnih i broj neparnih cifara u zapisu broja (za analizu cifara koristiti
switch naredbu).
Na primer: za broj n=23456 izlaz je "Broj parnih:3, broj neparnih:2"

2. Napisati program koji ucitava karaktere sa ulaza sve do pojave karaktera *


a potom ispisuje broj pojavljivanja cifara.

3. Napisati program koji ucitava karaktere sa ulaza sve do kraja ulaza (EOF),
a zatim ispisuje broj pojavljivanja svakog samoglasnika (za analizu
samoglasnika koristiti switch naredbu, uzeti u obzir i mala i velika slova).

4. Napisati program koji iscrtava kvadrat dimenzije n. Npr. za uneto n=6


iscrtava se

******
* *
* *
* *
* *
******

5. Napisati program koji iscrtava jednakokraki pravougli trougao cija je


stranica dimenzije n. Npr. za uneto n=4 iscrtava se

*
**
***
****

6. Napisati program koji za uneto n (n>=1) iscrtava slovo X visine 2n+1. Npr.
za uneto n=2 iscrtava se
* *
* *
*
* *
* *
7. Napisati program koji ispisuje max dva cela broja koja se ucitavaju sa
standardnog ulaza.
Koristiti switch.
8. Napisati program koji za ucitani karakter sa standardnog ulaza ispisuje da
li je samoglasnik ili suglasnik ili slovo r.
9. Napisati program koji za uneto n ispisuje "klin" i "trougao". Npr. za n= 5

* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *

10. Napisati C program koji za ucitano n sa standardnog ulaza ispisuje datu


sliku
rasporeda zvezdica i belina. (kolokvijum 2012)
Na primer za n=10:
* * * * * * * * * *
*****************
* * * * * * * *
*************
* * * * * *
*********
* * * *
*****
* *
*

/*
1. Napisati program koji racuna minimum dva uneta cela broja.
Dopuniti program tako da racuna minimum za tri uneta cela broja.
*/

#include <stdio.h>
main(){
int a,b,c,min; /* Deklaracija promenlijvih */
printf("Unesite 3 broja.\n"); /*Ispisujemo poruku korisniku da unese
brojve... */
scanf("%d%d%d",&a,&b,&c); /*Ucitavamo 3 cela broja sa standardnog
ulaza */
min = (a < b) ? ((a<c)? a : c) : ((b<c)? b : c); /* Minimum uneta tri
broja smestamo u promenljivu min */

/* Moglo je i koriscenjem if naredbe... Npr. prvo predpostavavimo da


je maximalan broj a
min=a;
if (min>b) min=b; //proverimo da li je b manji od trenutnog
minimuma, ako jeste, to je novi minimum
if (min>c) min=c; //proverimo da li je c manji od trenutnog
minimuma, ako jeste, to je novi minimum
*/
printf("Min= %d\n",min);
}

/*
2. Sastaviti program u C-u koji ucitava N>0 celih brojeva i izracunava i
stampa zbir onih koji su veci od 0.
*/

#include <stdio.h>

main(){
int i,n,x,s; /* Deklaracija promenlijvih */
printf("Koliko zelite promenljivih zelite da unesete? :) \n");
/*Ispisujemo poruku korisniku da unese broj n... */
scanf("%d",&n);
s=0; /*Inicijalizujemo s na pocetku na nulu. To je trenutni zbir :)
jer jos uvek nismo poceli da unosimo brojeve...
Ne zaboravite inicijalizaciju promenljivih!!!*/
/* n puta treba ucita neki broj... Koristimo for petlju */
for(i=1;i<=n;i++)
{
scanf("%d",&x);
if (x>0) /* Ukoliko je upravo ucitani broj pozitivan */
s=s+x; /* Njegovu vrednost dodajemo na trenutni zbir s
i taj rezuletat smestamo u s. To je novo s.
Tj. zbir uvecavamo za x. Moglo
je biti i
s+=x;
*/
}

/*Ispisujemo rezultat... */
printf("suma svih razlicitih od 0 je: %d\n",s);
}

/*
4. Sastaviti program u C-u koji ucitava N>0 celih brojeva i izracunava i
stampa najveci medu njima.
*/

#include <stdio.h>

main(){
int max,x,n,i;
printf("Koliko zelite promenljivih zelite da unesete? :) \n");
/*Ispisujemo poruku korisniku da unese broj n... */
scanf("%d",&n);
/*Ucitamo prvi broj: */
scanf("%d",&x);
max=x; /* Inicijalizujemo promenljivu max na vrednost broja koji je
prvo ucitan.. */

/*Ucitavamo ostalih n-1 brojeva... */


for(i=2;i<=n;i++)
{
scanf("%d",&x);
if (x>max) /* proverimo da li je upravo ucitani broj x veci od
trenutnog maximuma */
max=x; /* Ukoliko jeste, to je novi maximum */
}

/*Ispisujemo rezultat... */
printf("max= %d\n",max);
}

/*
5. Sastaviti C-program koji ispituje da li je dati broj savrsen.
Broj je savršen ako je jednak zbiru svih svojih pravih delilaca.
*/

#include <stdio.h>
main(){
int i,s,n;
printf("unesite zeljeni broj\n");
scanf("%d",&n);
s=0; /* Zbir delilaca na pocetku inicijalizujemo na nulu... */
for(i=1;i<n;i++)
{
if (n%i==0) /* Ukoliko je n deljivo sa i */
s=s+i; /* Onda s uvecavamo za i (ako je izraz n%i==0
netacan, nece se nista desiti...) */
}

if (s==n)
printf("broj je savrsen\n");
else
printf("broj nije savrsen\n");
}

/*
6. Napisati program koji izracunava broj i zbir cifara unetog prirodnog
broja.
*/

#include <stdio.h>
main(){
int i,s,n;
printf("unesite zeljeni broj\n");
scanf("%d",&n);
s=0; /* Zbir cifara na pocetku inicijalizujemo na nulu */
i=0; /* Broj cifara na pocetku inicijalizujemo na nulu */

do{
i++;
s += n%10; /* Sa n%10 dobijamo ostatak pri deljenju broja n sa
10, tj. cifru koja se nalazi na poziciji desetica u broju n
Uvecavamo s u svakom koraku za
trenutno cifru desetica...
*/
n /= 10; /*U svakom koraku petlje menjamo n tako sto ga
delimo sa 10... (tako "odsecamo" poslednju cifru tj. cifru desetica...
Petlja se ponavlja sve dok n u
jednom trenutku ne postane nula. Tada ce u s biti suma svih cifara, a u i ce
biti broj cifara.
*/
}while(n);

/*Napomena: Korisceno ne do while a ne samo while da bi se ovako nesto


izvrsilo bar jednom, ukoliko je uneti broj x bas nula...
Tada je broj cifara jedan, a suma je nula... */

printf("broj cifara je %d\n",i);


printf("zbir cifara je %d\n",s);
}

/*
7. Sastaviti C-program koji za uneti broj ispisuje cifru jedinice,
cifru desetice i cifru stotine.
*/

#include <stdio.h>
main(){
int n,i,s;
printf("unesite prirodan broj\n");
scanf("%d",&n);

printf("Cifra jedinica je %d\n", n%10);


printf("Cifra desetica je %d\n", (n/10)%10);
printf("Cifra stotina je %d\n", (n/100)%10);

/*Moglo je i ovako: */
/* if (n<100)
printf("Broj koji ste uneli nije veci od 100\n");
else
for(i=1;i<=3;i++)
{
s=n%10;
n=n/10;
printf("%d\n",s);
}
*/
}

/*
8. Napisati program koji za uneto n i m stampa vrednost proizvoda
P=n*(n+m)*(n+2*m)*(n+3*m)*...*(n+m*m).
*/

#include <stdio.h>

main(){
int n,m,P,i;
printf("unesite n i m \n");
scanf("%d %d", &n, &m);
P=1; /*Na pocetku proizvod inicijalizujemo na jedinicu (neutral za
mnozenje). */

for(i=0;i<=m;i++)
P=P*(n+i*m); /*U svakom koraku P mnozimo sa izracunatim
zbirom: n+i*m... i se menja, ide od nule do m, sto odgovara formuli. */

/*Ispisujemo rezultat... */
printf("P= %d\n",P);
}

/*
9. Napisati program koji za uneto n ispisuje "klin" i "trougao". Npr. za n
= 5
Kod:

* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
*/
#include<stdio.h>

main(){
int m,n,i,j,k;
printf("unesite n\n");
scanf("%d",&n);

for(i=1;i<=n;i++)
{
/*U svakom redu najpre ispisujemo i-1 belinu... */
for(j=1;j<=i-1;j++)
printf(" "); /* Moglo je i putchar(' '); */
/*Zatim iscrtavamo n-i+1 kombinaciju '* ' Tj. posle svake
zvezdice ide belina... */
for(k=n-i+1;k>0;k--)
printf("* ");
/*Odmaknemo u svakom redu isto... */
printf(" "); /* Ili npr sa tabulatorima
printf("\t\t"); */
/*Zatim iscrtavamo i kombinacija '* ' Tj. posle svake zvezdice
ide belina... */
for(m=1;m<=i;m++)
printf("* ");
/*Kada zavrsimo iscrtavanje jednog reda, predjemo u novi
red... */
printf("\n");
}
}

/*
10. Napisati program koji za uneto n i uneti karakter ispisuje "romb"
nacrtan unetim
karakterom. Npr. za n = 5 i karakter ?
Kod:

?????
?????
?????
?????
?????

*/

#include <stdio.h>

main(){
int n,i,j,k;
char c;
printf("unesite N i zeljeni karakter\n");
scanf("%d %c",&n,&c);

/*Opet n puta "vrtimo" for petlju, samo primetimo da ovde brojac i ide
unazad (od n do 1)...
Pokusajte da izmenite program tako da se u for petlji i krece
od 1 do n */
for(i=n;i>0;i--)
{
/*Ispisujemo i-1 belinu u svakom redu... (u prvom redu to je
n-1 belina, a u poslednjem (n-tom) redu to ce biti nula belina jer je i tada
1 */
for(j=1;j<i;j++)
printf(" ");
/* U svakom redu ispisujemo n karaktera */
for(k=1;k<=n;k++)
printf("%c",c);
/*Na kraju predjemo u novi red... */
printf("\n");
}
}

/*
11. Sastaviti program koji ispisuje zbir s=1+2^3+3^3+…+k^3 za svako k
(0<k<=n) gde je n zadato sa tastature (n<=10).
*/

#include<stdio.h>
main(){
int n,s,i,j;
s = 0; /*Na pocetku s inicijalizujemo na nulu... */
printf("unesite n: \n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
/* Na trenutnu sumu s dodamo i*i*i */
s = s + i*i*i;
printf("Za k = %d, odgovarajuci zbir je S= %d\n", i, s);
}
}

/*
12. Sastaviti program koji ispisuje k! za svako k (0<k<=n) gde je n zadato sa
tastature. (n<=10)
*/

#include<stdio.h>

main(){
int n,i,s =1;
printf("unesi n\n");
scanf("%d",&n);

/*Za svako i od 1 do n... */


for(i=1;i<=n;i++)
{
/*trenutno s mnozimo sa i i tako u svakom koraku petlje u s se
nalazi faktoriel broja i */
s=s*i;
printf("%d! je jednako %d\n",i, s);
}
}

/*
13. Napisati C program koji cita tekst sa ulaza sve do pojave znaka EOF i na
izlazu stampa broj redova u tekstu.
*/

#include <stdio.h>

main()
{
char c;
int br_redova=0; /*Na pocetku broj redova je inicijalizovano na
nulu...*/
while ((c=getchar())!= EOF)
{
switch(c)
{
case '\n':
br_redova++;
break;
}

/*Umesto switch, prirodnije bi bilo koristiti if, s obrzirom


da je mali broj slucajeva koji razmatramo...
Tj. razmatramo samo nove redove:
if(c=='\n') br_redova++;
*/

}
printf("\n");
printf("Ukupno redova: %d.\n",br_redova);
}

/*
14. Napisati C program koji ucitava karakter sa ulaza i za uneto slovo p,l,
j ili z stampa ime odgovarajuceg godisnjeg doba, dok u svim ostalim
slucajevim ispisuje poruku Nepoznato slovo.
*/

#include <stdio.h>
main()
{
char c;
printf("Unesite \'p\', \'l\', \'j\' ili \'z\'.\n");
c=getchar();
/*Ucitali smo jedan karakter... Nakon cega ispisujemo odgovarajucu
poruku...
Razmatramo razlicite slucajeve koriscenjem switch naredbe.
Podsetiti se switch naredbe i toga sta se desi ukoliko
uklonimo break;

*/
switch(c)
{
case 'p':
case 'P':
printf("prolece\n");
break;
case 'l':
case 'L':
printf("Leto\n");
break;

case 'j':
case 'J':
printf("Jesen\n");
break;

case 'z':
case 'Z':
printf("Zima\n");
break;

default:
printf("Uneli ste pogresan karakter\n");
}
}

/*
15. Napisati C program koji cita tekst sa ulaza sve do pojave znaka EOF i na
izlazu stampa broj suglasnika.
*/

#include <stdio.h>

main(){
char c;
int br=0;

/*Ucitavamo karakter po karakter sve dok se ne unese EOF... */


while ((c=getchar())!=EOF)
if (c>='A' && c<='Z') /*Ukoliko je u pitanju veliko slovo */
if(c!='A' && c!='E' && c!='I' && c!='O' && c!='U')
/*Koje pri tom nije samoglasnik... */
br++; /*Uvecamo brojac suglasnika za jedan...
*/
if (c>='a' && c<='z') /*Slicno, proverimo i za mala slova...
*/
if(c!='z' && c!='e' && c!='i' && c!='o' && c!='u')
br++;

printf("\n");
printf("Ukupno suglasnika %d. \n", br);
}

/*
16. Napisati C program kojim se vrsi sifrovanje teksta koji se unosi tako sto
se svako pojavljivanje slova A zamenjuje cifrom 4, svako pojavljivanje slova
u zamenjuje slovom Z i svako pojavljivanje cifre 6 zamenjuje slovom w. Tekst
se unosi sa tastature sve do pojave karaktera EOF.
*/
#include <stdio.h>
main(){
char c;

/*Ucitavamo karakter po karakter sve dok se ne unese EOF... */


while((c=getchar())!=EOF)
switch(c)
{
case 'A':
putchar('4');
break;
case 'u':
putchar('6');
break;
case '6':
putchar('w');
break;
default:
putchar(c);
break;
}
}

/*
17. Napisati program koji omogucava korisniku da unese ceo
broj sa tastature, a potom ispisuje 0 ako je broj jednak nuli,
1 ako je jednak jedinici i "razlicit od 0 i 1" u ostalim slucajevima.
Program realizovati korišcenjem switch naredbe.
*/

#include <stdio.h>

main(){
int x;

printf("Unesite ceo broj: \n");


scanf("%d", &x);

switch(x){
case 0: printf("Uneli ste nulu.\n");
break;
case 1: printf("Uneli ste jedinicu.\n");
break;
default: printf("Uneli ste broj razlicit od 0 i 1.\n");
break;
}
}
/*
18. Napisuje program koji omogucava korisniku da unese niz
karaktera, a potom racuna i ispisuje broj samoglasnika u unetom nizu.
Program realizovati korišcenjem switch naredbe.
*/

#include <stdio.h>

main(){
char c;
int br = 0;

printf("Unesite niz karaktera: \n");


while((c=getchar())!=EOF)
switch(c){
case 'A': case 'E': case 'I': case 'O': case 'U':
case 'a': case 'e': case 'i': case 'o': case 'u':
br++;
break;
}
printf("Broj samoglasnika je %d.\n", br);
}

ZADACI ZA VEZBU

DEO 1:

1. Napisati program koji razmenjuje vrednosti


dve celobrojne promenljive.

2. Sastaviti program koji za zadato N iscrtava konturu


kvadrata stranice dužine N.
Na primer, za N = 4, program iscratava:
****
* *
* *
****

3.Sastaviti program koji sa tastature ucitava niz karaktera


koji predstavljaju aritmeticki izraz koji se sastoji iskljucivo
od cifara i aditivnih operatora i odreduje broj cifara u ovom izrazu.
Ulaz se završava unosom znaka =.
Npr. za unos 22+12-5-1=, program ispisuje Broj cifara je 6.
Ucitavanje realizovati koriscenjem funkcije getchar().

4. Sastaviti program koji sa tastature cita cele brojeva sve


dok ne bude uneta 0. Program treba da odredi najmanji i najveci
uneti broj. Na primer, ako su uneti brojevi 2 -3 4 6 -1 5 -4 3 0,
program ispisuje tekst Najmanji je -4, a najveci 6.

5. Sastaviti program koji sa tastature ucitava niz karaktera dok


ne stigne do EOF i broji koliko se puta pojavilo slovo a (veliko ili malo),
slovo b i slovo c.

DEO 2:

1. Napisati program koji na standardni izlaz ispisuje "%\Tekst\%"

2. Napisati program koji ispisuje kvadrat i kub unetog broja.


3. Napisati program koji racuna obim i povrsinu kruga ciji se poluprecnik
unosi sa standardnog ulaza. Rezulat prikazati zaokruzen na dve decimale.

4. Napisati program koji ispituje da li je uneti broj paran.

5. Napisati program koji ispituje da li je uneti broj pozitivan, a nije


paran.

6. Napisati program koji ispituje da li je data godina prestupna.

7. Sa tastature se unosi broj n. Napisati program koji n puta ispisuje nisku


"We love C programming" i to
a) koriscenjem for petlje
b) koriscenjem while petlje
c) koriscenjem do-while petlje
Kako se programi ponasaju za n=0?

8. Napisati program koji ispisuje brojeve od 1 do 10 i njihove kvadrate i


korene.

9. Napisati program koji ispisuje brojeve od 1 do 100 i to po 10 u svakoj


vrsti.

10. Napisati program koji ispisuje tablicu mnozenja brojeva od 1 do 10


Kod:

| 1 2 3 4 5 6 7 8 9 10
--------------------------------------------
1| 1 2 3 4 5 6 7 8 9 10
2| 2 4 6 8 10 12 14 16 18 20
3| 3 6 9 12 15 18 21 24 27 30
4| 4 8 12 16 20 24 28 32 36 40
5| 5 10 15 20 25 30 35 40 45 50
6| 6 12 18 24 30 36 42 48 54 60
7| 7 14 21 28 35 42 49 56 63 70
8| 8 16 24 32 40 48 56 64 72 80
9| 9 18 27 36 45 54 63 72 81 90
10| 10 20 30 40 50 60 70 80 90 100

11. Napisati program koji za uneto n ispisuje "klin" i "trougao". Npr. za n =


5
Kod:

* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *

12. Napisati program koji za uneto n i uneti karakter ispisuje "romb" nacrtan
unetim
karakterom. Npr. za n = 5 i karakter ?
Kod:

?????
?????
?????
?????
?????

13. Napisati progam koji ispisuje zbir i proizvod 5 unetih brojeva.

14. Napisati program koji ispisuje faktorijel unetog broja.

15. Napisati program koji ispisuje aritmeticku, geometrijsku i harmonijsku


sredinu 10 unetih brojeva.

16. Napisati program koji ispisuje najmanji od 10 unetih brojeva.

17. Definisati makro koji racuna kub datog broja.

18. Definisati makro kojim se izracunava istinita vrednost implikacije.

19. Definisati makro kojim se ispituje da li je data godina prestupna.

20. Napisati program koji ispisuje cifru jedinica unetog prirodnog broja.

21. Napisati program koji izracunava broj cifara unetog prirodnog broja.

22. Napisati program koji izracunava sumu cifara unetog prirodnog broja.

23. Napisati program koji permutuje cifru jedinica i desetica unetom


prirodnom broju.

24. Napisati program koji uklanja cifru desetica unetom prirodnom broju.

25. Napisati program koji obrce cifre unetog prirodnog broja. Npr. za broj
1234 dobija se broj 4321.

DODATNO:

26.

a) Napisati C program koji za uneti datum u obliku dan mesec godina ( npr.
13 12 2009 ) odredjuje i stampa datum sledeceg dana ( voditi racuna o
prestupnim godinama ).

b) Napisati C program koji za uneti datum u obliku dan mesec godina ( npr.
13 12 2009 ) odredjuje i stampa datum prethodnog dana ( voditi racuna o
prestupnim godinama ).

27.

a) Napisati C program koji uc(itava ceo broj n sa ulaza i ispisuje broj


cifara u zapisu tog broja. Npr. ako korisnik unese broj 567 rezultat treba
da bude 3.

b) Napisati C program koji uc(itava ceo broj n sa ulaza i ispisuje broj


jedinica u binarnom zapisu broja n. Npr. za uneto 10 rezultat treba da bude
2, dok za uneto 11 rezultat treba da bude 3.
28.Napisati C program koji za uneto n iscrtava kvadrat dimenzije n koji na
glavnoj dijagonali ima zvezdice. Npr. za uneto n=5 na ekranu treba nacrtati:

*****
** *
* * *
* **
*****

29. Napisati C program koji za uneto n iscrtava kvadrat dimenzije n koji na


sporednoj dijagonali ima zvezdice. Npr. za uneto n=5 na ekranu treba
nacrtati:

*****
* **
* * *
** *
*****

30. Napisati C program koji c(ita tekst sa ulaza sve do pojave znaka EOF i na
izlazu stampa broj redova u tekstu.

31. Napisati C program koji uc(itava karakter sa ulaza i za uneto slovo p,l,
j ili z stampa ime odgovarajuceg godisnjeg doba, dok u svim ostalim
sluc(ajevim ispisuje poruku Nepoznato slovo.

32. Napisati C program kojim se proverava da li je uneti broj n potpun


kvadrat nekog celog broja. Npr. za unos n=4 izlaz treba da bude DA jer je
4=2 2 , dok za unos n=7 izlaz treba da bude NE.

33. Napisati C program koji proverava da li je uneti broj ndeljiv sa 3. Npr.


za unos n=231 odgovor treba da bude Da.

34. Napisati C program kojim se vrsi sifrovanje teksta koji se unosi tako sto
se svako pojavljivanje slova A zamenjuje cifrom 4, svako pojavljivanje slova
u zamenjuje slovom Z i svako pojavljivanje cifre 6 zamenjuje slovom w. Tekst
se unosi sa tastature sve do pojave karaktera EOF.

You might also like