You are on page 1of 28

1. Izracunavanje n-tog stepena celog broja a.

//
Oba broja se unose sa tastature
///////////////////////////////////////////////////////////////////////
#include <stdio.h>
main()
{
int a, n, i=1, stepen=1;
// poruka korisniku printf("Unesite broj a: ");
// unos broja a
scanf("%d",&a);
// poruka korisniku
printf("Unesite broj n: ");
// unos broja n
scanf("%d",&n);
// izracunavanje n-tog stepena broja a while(i<=n)
{
stepen*=a; i++;
}
// ispis n-tog stepena
printf("Broj %d na %d-ti stepen je : %d\n",a,n,stepen);
}
2. Program za izracunavanje sume prirodnih brojeva od 1 do n.
//
Broj n se unosi sa tastature.
///////////////////////////////////////////////////////////////////
#include <stdio.h>
main() {
int suma=0, n, i=1;
// unos broja n printf("Unesite ceo broj n do koga zelite sumu: ");
scanf("%d",&n);
// izracunavanje sume while(i <= n)
{
suma+= i;
i++;
}
// ispis sume prirodnih brojeva
printf("Suma prirodnih brojeva od 1 do %d je: %d\n",n,suma);
}
3. Program za izracunavanje zbira kvadrata prvih n brojeva.
//
Unos broja n vrsi se sa tastature
///////////////////////////////////////////////////////////////////////
#include <stdio.h>

main()
{
int suma=0, n, i=1;
// unos broja n
printf("Unesite ceo broj n: ");
scanf("%d",&n);
// izracunavanje sume kvadrata
while(i <= n)
{
suma+= i*i;
i++;
}
// ispis sume prirodnih brojeva
printf("Suma kvadrata prirodnih brojeva od 1 do %d je: %d\n",n,suma);
}
4. Program za izracunavanje sume kvadrata parnih
//
brojeva u opsegu od broja n do broja m.
//
Brojevi n i m se unose sa tastature (n<m)
///////////////////////////////////////////////////////////////////////
#include <stdio.h>
main()
{
int suma=0,n,m,i;
// unos brojeva n i m printf("Unesite cele brojeve n i m:\n");
scanf("%d %d",&n,&m);
// izracunavanje sume kvadrata
i=n;
while(i <= m)
{
// provera za parne brojeve
if(i%2 == 0)
suma+= i*i;
i++;
}
// ispis rezultata printf("Suma kvadrata parnih brojeva od %d do %d je
%d\n",n,m,suma);
}
5. Program za izracunavanje faktorijela
//
n! = n*(n-1)*(n-2)*....*2*1.
//
Broj n se unosi sa tastature
///////////////////////////////////////////////////////////////////////
#include <stdio.h>

main()
{
int i,n;
long faktorijel=1;
// unos broja za izracunavanje faktorijela
printf("Unesite ceo broj n: ");
scanf("%d",&n);
// izracunavanje faktorijela for(i=1;i<=n;i++)
{
faktorijel=faktorijel*i;
}
// ispis rezultata faktorijela
printf("Faktorijel = %ld\n", faktorijel);
}
6. Program za nalazenje svih trocifrenih brojeva koji su jednaki
//
zbiru kubova svojih cifara, abc = a3+ b3+c3
///////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <math.h>
#define KUB 3
main()
{
int a,b,c,m;
double k;
printf("Trocifreni brojevi koji su jednaki zbiru kubova svojih cifara su:\n");
//petlja za prolazak kroz sve trocifrene brojeve
for(m=100;m<999;m++)
{
a = m/100; //cifra ne mestu stotica
b = m%100/10; //cifra ne mestu desetica
c = m%10; //cifra ne mestu jedinica
k = pow(a,KUB) + pow(b,KUB) + pow(c,KUB); //izracunavanje kubova
if(m == k)
//stampaj brojeve
printf("%d ",m);
}
printf("\n");
}
7. Program kojim se stampaju svi stepeni broja 2 koji
//
nisu veci od unapred zadate granice koja je veca od broja 2
///////////////////////////////////////////////////////////////////////

#include <stdio.h>
main()
{
int stepen,granica;
// unos granice ispisa
printf("Unesite granicu ispisa: ");
scanf("%d",&granica);
stepen=1;
do
{
printf(" %d\n",stepen);
stepen*=2;
}
while(stepen <=granica);
}
8. Program za ucitavanje n realnih brojeva i stampanje
//
najveceg i najmanjeg broja
///////////////////////////////////////////////////////////////////////
#include <stdio.h>
main()
{
int n=1;
int i; double a, min, max;
// spoljasnja petlja
while(n>0)
{
// poruka korisniku
printf("Koliko brojeva zelite da unesete? n= ");
scanf("%d",&n);
//unos prvog broja
printf("Unesite prvi realan broj:\t ");
scanf("%lf",&a);
min = max = a;
// poredjenje svakog sledeceg broja sa min i max
{
printf("Unesite sledeci realan broj:\t");
scanf("%lf",&a);
if(a < min) min = a;
if(a > max) max = a;
}
// stampanje brojeva
printf("Minimum = %f\n",min);
printf("Maximum = %f\n",max);
printf("Da li zelite novi unos?\n");

for(i=2; i<=n; i++)

printf("(unesite 0 za kraj ili pozitivan broj za nastavak) \n");


scanf("%d",&n);
}
}
9. Program za izracunavanje aritmeticke sredine prvih n brojeva.
//
Unos broja n vrsi se sa tastature
///////////////////////////////////////////////////////////////////////
#include <stdio.h>
void arSred(int n);
main()
{
int x;
printf ("Unesite broj do kojeg zelite aritmeticku sredinu:\n");
scanf("%d", &x);
arSred(x);
}
//funkcija koja vrsi izracunavanje aritmeticke sredine
void arSred(int n)
{
float zbir=0.0;
int i;
// provera da li je unet broj manji od 1
if(n<1)
{
printf("Morate uneti broj veci od 0\n");
return;
}
for (i=1; i<=n; i++)
{
zbir += i;
}
zbir = zbir/n;
printf("Aritmeticka sredina prvih %d brojeva je %.2f\n",n, zbir);
}
10. Korisnik unosi niz, program sortira niz po rastuem redosledu,
// zatim ga ispisuje.
///////////////////////////////////////////////////////
#include<stdio.h>
//prototip funkcija

void pisiNiz(int x[], int n);

void citajNiz(int x[], int n);


void razmeni(int*a, int*b);
void sortiraj(int *a, int n);
main()
{
int n, x[50];
printf("Unesite broj elemenata niza za sortiranje:\n");
scanf("%d",&n);
//unos elemenata niza

printf("Unesite elemente niza:\n");


//funkcija za unos elemenata niza

citajNiz(x,n);
//funkcija za sortiranje niza

sortiraj(x,n);
//ispisivanje sortiranog nizaprintf("Sortirani

pisiNiz(x,n);
}
void citajNiz(int x[], int n)
{
int i;
for(i=0;i<n;i++)
{
printf("x[%d]=",i);
scanf("%d",&x[i]);
}
}
void pisiNiz(int x[], int n)
{
int i;

niz je:\n");

for(i=0;i<n;i++)
{
printf("x[%d]=%d",i,x[i]);
printf("\n");
}
}
void razmeni(int*a,int*b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void sortiraj(int*a,int n)
{
int i,j;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(*(a+i)>*(a+j))
razmeni (a+i, a+j);
}
}
}
11. Program za izracunavanje zbira kvadrata prvih n prirodnih brojeva,
//
uz upotrebu posebne funkcije. Unos broja n vrsi se sa tastature
///////////////////////////////////////////////////////////////////////
#include <stdio.h>
void zbirKvadrata(int n);
main()
{

int x;
printf ("Unesite broj do kojeg zelite zbir kvadrata:\n");
scanf("%d", &x);
zbirKvadrata(x);
}
//funkcija koja vrsi izracunavanje zbira kvadrata prvih n brojeva
void zbirKvadrata(int n)
{
int i, zbir=0;
// provera da li je unet broj manji od 1 if(n<=1)
{
printf("Morate uneti broj veci od 1\n");
return;
}
for(i=1; i<=n; ++i)
{
zbir += i*i;
}
printf("Zbir kvadrata brojeva od 1 do %d je %d\n",n, zbir);
12. Program za konverziju dekadnog broja u binarni
//
unos dekadnog broja vrsi se sa tastature
///////////////////////////////////////////////////////////////////////
#include <stdio.h>
void decBin (int dec);
main ()
{
int number;
printf("Unesite broj za konverziju: ");
scanf("%d",&number);
decBin (number);
}
// funkcija koja vrsi konverziju
void decBin (int dec)
{
// promenjiva za pamcenje ostataka pri deljenju
int offset = 0;
// niz za smestanje binarnog broja
int binaryValue [40];
while (dec!= 0)
{
binaryValue [offset] = dec % 2;
dec /= 2;
offset++;
}

offset--;
// ispis rezultata
for(;offset>=0;offset--)
printf("%1d", binaryValue[offset]);
printf("\n");
}
13. Program za prikazivanje fibonacijevog niza od n elemenata.
//
Broj n se unosi sa tastature.
//
F[n] = F[n-1] + F[n-2]; F[0] = 0, F[1] = 1;
///////////////////////////////////////////////////////////////////////
#include <stdio.h>
void Fib (int n);
main()
{
int x;
printf ("Unesite broj do kojeg zelite Fibonacijev niz: ");
scanf("%d", &x);
Fib (x);
}
// funkcija koja vrsi izracunavanje i prikaz fib. niza
void Fib (int n)
{
int i;
int score;
int last = 1;
int nextToLast = 0;
if (n<=0)
{
printf("Morate uneti broj veci od 0\n");
return;
}
printf("F[0] je: 0\n");
printf("F[1] je: 1\n");
for (i=2; i<n; ++i)
{
score = last + nextToLast;
nextToLast = last;
last = score;
printf ("F[%d] je: %d\n", i, last);
}
}
14. Program za izracunavanje sume kvadrata neparnih brojeva u opsegu

//
brojeva od n do m, uz upotrebu posebne funkcije.
//
Brojevi n i m se unose sa tastature (n < m)
///////////////////////////////////////////////////////////////////////
#include <stdio.h>
void kvadrati (int k, int r);
main()
{
int n,m;
//ucitavanje broja n
printf("Unesite broj n: ");
scanf("%d",&n);
//ucitavanje broja m
printf("Unesite broj m: ");
scanf("%d",&m);
//poziv funkcije
kvadrati(n,m);
}
//funkcija koja radi izracunavanje
void kvadrati (int k, int r)
{
int i;
int suma=0;
//provera da li je n < m
if (k >= r)
{
printf("Morate uneti broj m koji je veci od n\n");
return;
}
i = k;
while(i <= r) // ukljucujemo i broj m u sumu
{
if(i%2 == 1) // da li je neparan broj
suma+= i*i; // dodaj na sumu kvadrat neparnog broja
i++;
}
printf("Suma kvadrata neparnih brojeva od %d do %d je %d\n",k,r,suma);
}
15. Program za izraunavanje srednje vrednosti onih elemena
// niza celih brojeva koji su deljivi sa tri.
///////////////////////////////////////////////////////////////////////
#include<stdio.h>

main()
{
int

a[100], i, k, n;

double

s;

while(1)

{
// Unesite broj elemenata niza

printf("Unesite broj elemenata niza: ");


scanf("%d",&n);

/*Ako je uneta vrednost negativan broj, ili broj veci


od 100 izlazi se iz programa*/

if( n<0 || n>100) break;

//Unesite elemente niza

for(i=0; i<n;

i++)

{
printf("a[%d]: ",i);

scanf("%d",&a[i]);
}

/*Traze se brojevi deljivi sa 3*/


for(s=i=k=0; i<n;

i++)

if(a[i]%3 == 0)
{
s+=a[i];
k++;
}

/*Ako postoje brojevi deljivi sa 3 trazi se njihova


aritmeticka sredina i ispisuje*/

if(k) s/=k;
printf("s= %.2f\n",s);
}
}
16. Program za sortiranje niza u neopadajucem redosledu.
//
Niz se unosi sa tastature.
///////////////////////////////////////////////////////////////////////

#include <stdio.h>
void citajNiz(int x[],int n);
void pisiNiz(int x[],int n);

main()
{
int n, x[20];
int i,j,temp;
// ucitavanje broja clanova niza
printf("Unesite broj clanova niza: ");
scanf("%d",&n);
if (n>20)
{
printf("Broj clanova niza mora biti manji od 20!\n");
return 1;
}
// poziv funkcije za ucitavanje niza
printf("Unesite niz za sortiranje: \n");
citajNiz(x,n);
// sortiranje niza
for(i=0;i<n;i++) // prolazak kroz sve elemente niza
{
for(j=i+1;j<n;j++) // poredjenje samo sa onim koji su veceg indeksa
{
if(x[i] > x[j]) // poredjenje svih elemenata niza sa datim
{
temp = x[i];
x[i] = x[j];
x[j] = temp;
}
}
}
printf("Redosled u neopadajucem redosledu unetih brojeva:\n");
pisiNiz(x,n);
return 0;
}
// funkcija za ucitavanje niza
void citajNiz(int x[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("x[%d]=",i);
scanf("%d",&x[i]);
}
}
// funkcija za ispisivanje nizavoid pisiNiz(int x[],int n)
{
int i;
for(i=0;i<n;i++)

{
printf("x[%d]= %d",i,x[i]);
printf("\n");
}
17. Program za izracunavanje i prikazivanje prosecne vrednosti
//
clanova niza i daje izvestaj koji clanovi niza su manji
//
od izracunatog proseka.
//
Niz brojeva se unosi sa tastature
///////////////////////////////////////////////////////////////////////

#include <stdio.h>
#define N 100
main()
{
int i, brojClanova, niz[N];
double prosek, suma=0.;
// poruka korisniku
printf("Koliko clanova zelite da unesete: ");
// unos sa tastature
scanf("%d",&brojClanova);
while(brojClanova > N)
{
// poruka korisniku
printf("Unesite broj clanova niza: ");
// unos sa tastature
scanf("%d",&brojClanova);
}
for (i=0;i<brojClanova;i++)
{
// poruka korisniku
printf("Unesite clan [%d]: ",i+1);
// unos sa tastature
scanf("%d",&niz[i]);
// izracunavanje zbira svih clanova niza
suma+=niz[i];
}
// izracunavanje proseka
prosek=suma/brojClanova;

// stampanje rezultata
printf("Prosek je: %lf\nManji od proseka su:\n",prosek);
for (i=0;i<brojClanova;i++)
{
if (niz[i]<prosek)
{
// stampanje rezultata
printf ("%d ",niz[i]);
}
}
// prelazak u novi red
printf("\n");
}
18. Program za prikazivanje svih parnih brojeva, koji su veci
//
od broja A i manji od broja B.
//
To radi pomocu funkcije koja ima argumente a i b
///////////////////////////////////////////////////////////////////////

#include <stdio.h>
void brojevi(int a, int b);
main()
{
int a, b;
// poruka korisniku
printf("Unesite pozitivne cele brojeve A i B, pri cemu mora da vazi uslov A<B\n");
// poruka korisniku
printf("A = ");
// unos sa tastature
scanf("%d", &a);
while(a<=0)
{
// poruka korisniku
printf("A = ");
// unos sa tastature
scanf("%d", &a);
}
// poruka korisniku

printf("B = ");
// unos sa tastature
scanf("%d", &b);
while(b<=a)
{
// poruka korisniku
printf("B = ");
// unos sa tastature
scanf("%d", &b);
}
// poziv funkcije
brojevi(a,b);
}
void brojevi(int a, int b)
{
int i;
// stampanje rezultata
printf("Izmedju A i B nalaze se sledeci parni brojevi:\n");
for(i=a+1; i<b; i++)
{
if(i%2==0)
// stampanje rezultata
printf("%d\n", i);
}
}
19. Program za izracunavanje i prikazivanje zbira clanova niza
//
sa parnim indeksom i zbira clanova niza sa neparnim indeksom
//
Niz brojeva se unosi sa tastature
///////////////////////////////////////////////////////////////////////

#include <stdio.h>
#define N 50
void zbir(int n);
main()
{
int n;

// poruka korisniku
printf("Koliko clanova niza zelite da unesete?\n");
// unos sa tastature
scanf("%d", &n);
if(n>N)
{
// poruka korisniku
printf("Potrebno je da unesete broj manji od %d.\n", N);
return 1;
}
// poziv funkcije
zbir(n);
return 0;
}
void zbir(int n)
{
int niz[N], parni=0, neparni=0, i;
for(i=0; i<n; i++)
{
// poruka korisniku
printf("clan[%d] = ", i);
// unos sa tastature
scanf("%d", &niz[i]);
if(i%2==0)
parni += niz[i]; // izracunavanje zbira clanova sa parnim indeksom
else
neparni += niz[i]; // izracunavanje zbira clanova sa neparnim indeksom
}
// stampanje rezultata
printf("Zbir clanova niza sa parnim indeksom je %d.\n", parni);
printf("Zbir clanova niza sa neparnim indeksom je %d.\n", neparni);
}
20. Program za izracunavanje zbira cifara bilo kog broja
//
veceg od 1 i manjeg od 1000.
//
Dati broj se unosi sa tastature.
///////////////////////////////////////////////////////////////////////

#include <stdio.h>
main()
{
int n, zbir=0;
// poruka korisniku
printf("Unesite ceo broj, koji je veci od 1 i manji od 1000:\n");
// unos sa tastature
scanf("%d", &n);
if(n<=1 || n>=1000)
{
// poruka korisniku
printf("Potrebno je da unesete broj veci od 1 i manji od 1000.\n");
return 1;
}
zbir += n/100; // zbiru se dodaje cifra koja oznacava stotine
zbir += (n/10)%10; // zbiru se dodaje cifra koja oznacava desetice
zbir += n%10; // zbiru se dodaje cifra koja oznacava jedinice
// stampanje rezultata
printf("Zbir cifara kod broja %d iznosi %d.\n", n, zbir);
return 0;
21. Program za izracunavanje najmanjeg broja od zadata 4 broja,
//
uz koriscenje funkcije koja poredi dva broja.
///////////////////////////////////////////////////////////////////////

#include <stdio.h>
int funkcija(int a, int b); // deklarisanje funkcije, koja vraca celobrojni rezultat
main()
{
int a,b,c,d; // trebaju nam 4 cela broja
printf("Unesite cetiri cela broja:\n"); // poruka korisniku
scanf("%d%d%d%d", &a, &b, &c, &d); // unos trazena 4 cela broja

// stampanje rezultata, pri cemu se sam poziv funkcije


// nalazi unutar 'printf' izraza printf("Najmanji od uneta cetiri broja je %d.\n",
funkcija(d,funkcija(c,funkcija(a,b))));
}
int funkcija(int a, int b)
{
int temp; // pomocna promenljiva
if(a<b)
temp=a;
else
temp=b;
return temp; // vracanje celobrojnog rezultata
}
22. Napisati

program koji za uneseno n tampa sumu prvih n


prirodnih brojeva i n!
Rjeenje
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, i, suma=0, fakt=1;
scanf("%d", &n);
for(i=1; i<=n; i++)
suma += i;
printf("Suma prvih %d je %d\n", n, suma);

for(i=1; i<=n; i++)


fakt *= i;
printf("%d! = %d\n", n, fakt);
return 0;
}
23. Odtampati sve djelioce unesenog broja.
Rjeenje
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, i;
scanf("%d", &n);
for(i=1; i<=n; i++)
if (n%i == 0)
printf("%d ", i);
return 0;
}
24. Odtampati sve savrene brojeve manje od10000 (broj

je savren ako je jednak


zbiru svojih djelilaca, osim sebe samog).
Rjeenje
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, i,suma;
for(n=1; n<10000; n++)
{
suma = 0;
for (i=1; i<n; i++)
if (n%i == 0)
suma+=i;
if (suma==n)
printf("broj %d je savrsen\n", n);
}
return 0;
}

25. Napisati program koji za uneseni prirodni broj tampa


zbir njegovih cifara.
Rjeenje
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, suma = 0;
scanf("%d", &n);
while(n > 0)
{
suma += n % 10; // sa n%10 se dobija posljednja cifra
n /= 10;
}
printf("%d", suma);
return 0;
}
26. Napisati program koji za uneseni prirodan broj ispisuje
broj ije su cifre u

obrnutom redoslijedu.
Rjeenje
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, obrnuti = 0;
scanf("%d", &n);
while(n > 0)
{
obrnuti = obrnuti*10 + n % 10;
n /= 10;
}
printf("%d", obrnuti);
return 0;
}
27. Napisati program koji tampa sve trocifrene brojeve
kod kojih je druga cifra za
dva vea od prve a trea za jedan vea od druge.

Rjeenje
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, j, k;
for(i=1; i<=9; i++)
for(j=3; j<=9; j++)
for(k=4; k<=9; k++)
if(j == i+2 && k == j+1)
printf("%d%d%d\n", i, j, k);
return 0;
28. Napisati funkciju koja ispituje da li je dati broj prost.
Rjeenje
int prost(unsigned int broj)
{
int i;
for(i=2; i<broj; i++)
if(broj % i == 0)

return 0;
return 1;
}
29. Napisati program koji tampa sve prostebrojeve manje
od 1000.
Rjeenje
Ovdje emo iskoristiti funkciju iz prethodnog primjera.
Za svaki broj od 1000
pozivanjem funkcije iz prethodnog primjera emo ispitati
da li je prost.
#include <stdio.h>
#include <stdlib.h>
int prost(unsigned int broj)
{
int i;
for(i=2; i<broj; i++)
if(broj % i == 0)
return 0;
return 1;
}

int main()
{
int i;
for(i=1; i<=1000; i++)
if(prost(i) == 1)
printf("%d\t", i);
return 0;
}
30. Napisati program koji tampa sve prostebrojeve manje
od 1000.
Rjeenje
Ovdje emo iskoristiti funkciju iz prethodnog primjera.
Za svaki broj od 1000
pozivanjem funkcije iz prethodnog primjera emo ispitati
da li je prost.
#include <stdio.h>
#include <stdlib.h>
int prost(unsigned int broj)
{
int i;

for(i=2; i<broj; i++)


if(broj % i == 0)
return 0;
return 1;
}
int main()
{
int i;
for(i=1; i<=1000; i++)
if(prost(i) == 1)
printf("%d\t", i);
return 0;
}
Zadaci za vjebu

31. Napisati program koji uitava n, zatim uitava n


brojeva i izraunava njihovu
aritmetiku sredinu.
32. Napisati program koji rauna zbir, razliku i proizvod

razlomaka a/b i c/d


33. Napisati program koji za uneseno n ispisuje trougao kao
na slici (na slici n=3)
1
22
333
34. Napisati program koji za uneseno n tampa kvadrate
brojeva 1, 2, ... , n-1.
35. Napisati program koji izraunava aritmetiku sredinu
cifara datog broja.
36. Napisati program koji u datom etverocifrenom
brojuizraunava razliku izmeu prve i poslednje cifre.
37. Napisati program koji za unesene n i m (m<n)
izraunava sumu posljednjih m cifara broja n.
38. Napisati program koji za unesene n i m uitava n
brojeva i izraunava aritmetiku sredinu brojeva koji su
vei od m.
39. Napisati program koji uitava broj m i zatim uitava
brojeve sve dok im suma ne pree m.
40. Napisati program koji za n unijeti cijelih brojeva rauna
zbir negativnih.
41. Napisati program koji za uneseno n rauna n-ti
lanFibonaijevog niza
42. Napisati program koji za unesena tri cijela broja
ispisuje najvei.

You might also like