Professional Documents
Culture Documents
“;
#include <stdio.h>
int main()
{
printf("Pozdrav svete!");
return 0;
}
2) Napisati na jeziku C program koji pročita dva cela broja s glavnog ulaza računara, izračuna njihov zbir i
ispiše rezultat na glavnom izlazu računara.
#include <stdio.h>
int main()
{
int a, b, c;
printf("Unesite dva cela broja: ");
scanf("%d%d",&a,&b);
c=a+b;
printf("a + b = %d + %d = %d\n",a,b,c);
return 0;
}
3) Napisati na jeziku C program koji pročita dužinu poluprečinka kruga s glavnog ulaza računara i ispiše
dužinu obima i veličinu površine tog kruga na glavnom izlazu računara. P=r^2*pi, O=2*r*pi;
#include <stdio.h>
#define PI 3.14159265359
int main()
{
double r;
printf("Unesite poluprecnik: ");
scanf("%lf",&r);
printf("O = %.3f\n",2*r*PI);
printf("P=%.3f\n",r*r*PI);
return 0;
}
4) Napisati na jeziku C program za izračunavanje površine trougla u ravni ako su zadate koordinate
temena. Potrebne podatke čitati s glavnog ulaza računara, a rezultat prikazati na glavnom izlazu
računara. (ZADATAK ZA SAMOSTALAN RAD)
#include <stdio.h>
#include <math.h>
int main() {
float ax,ay,bx,by,cx,cy,s,p,a,b,c;
printf("Unesi x koordinatu temena A: ");
scanf("%f", &ax);
printf("Unesi y koordinatu temena A: ");
scanf("%f", &ay);
printf("Unesi x koordinatu temena B: ");
scanf("%f", &bx);
printf("Unesi y koordinatu temena B: ");
scanf("%f", &by);
printf("Unesi x koordinatu temena C: ");
scanf("%f", &cx);
printf("Unesi y koordinatu temena C: ");
scanf("%f", &cy);
/*stranice*/
a=sqrt((bx-cx)*(bx-cx)+(by-cy)*(by-cy));
b=sqrt((cx-ax)*(cx-ax)+(cy-ay)*(cy-ay));
c=sqrt((ax-bx)*(ax-bx)+(ay-by)*(ay-by));
/*povrsina*/
s=(a+b+c)/2;
p=sqrt(s*(s-a)*(s-b)*(s-c));
/*ispis*/
printf("Povrsina trougla je:%.2f\n ", p);
return 0;
}
5) Vreme se zadaje pomoću broja godine, meseca, dana, sata I minuta. Napisati na C jeziku program za
pakovanje I obrnuti process raspakivanje podataka o vremenu u jednu 32-bitnu celobrojnu promenljivu.
Potrebne podatke čitati sa glavnog ulaza računara, a rezultate prikazati na glavnom izlazu računara.
#include <stdio.h>
int main()
{
unsigned short godina, mesec, dan, sat, minut;
unsigned long vreme; /*32 bitna celobronjna promenljiva*/
printf("Unesite dan, mesec, godinu: ");
scanf("%hd%hd%hd", &dan,&mesec,&godina);
printf("Unesite sat i minut: ");
scanf("%hd%hd", &sat,&minut);
vreme=((unsigned long)godina)<<20 |
((unsigned long)mesec)<<16 |
dan << 11 |
sat <<6 |
minut;
printf("Pakovano: %lu (%lx)\n", vreme, vreme);
godina=vreme >>20;
mesec= vreme>>16 & 0x0f;
dan=vreme>>11 & 0x1f;
sat=vreme >> 6 & 0x1f;
minut=vreme & 0x3f;
printf("Raspakovano: %hd.%hd.%hd. %hd:%hd\n", &dan,&mesec,&godina,&sat,&minut);
return 0;
}
6) Napisati program na jeziku C koji traži od korisnika da unese broj dana, a zatim ispisuje koliko je to godina,
nedelja I dana.
#include <stdio.h>
#define PI 3.14159265359
int main()
{
int korisnik_dan, dan, god, ned;
printf("Unesi broj dana: ");
scanf("%d", &korisnik_dan);
god=korisnik_dan /365;
ned=(korisnik_dan%365)/7;
dan=korisnik_dan-((god*365)+(ned*7));
printf("Godina: %d\n", god);
printf("Nedelja: %d\n", ned);
printf("Dana: %d\n", dan);
return 0;
}
7)Napisati program na jeziku C koji pretvara nepravi razlomak u pravi. Obezbediti unos brojioca I imenioca sa
tastature (npr 8/5 daje rezultat 1 3/5)
#include <stdio.h>
int main()
{
int broj, imen, ceo_deo;
printf("Unesi brojilac: ");
scanf("%d", &broj);
printf("Unesi imenilac: ");
scanf("%d", &imen);
printf("Uneli ste: %d%d\n", broj,imen);
ceo_deo=broj/imen;
broj=broj-ceo_deo*imen;
printf("Pravi razlomak: %d %d/%d\n", ceo_deo,broj,imen);
return 0;
}
8)Napisati na jeziku C program za nalaženje najmanjeg od tri cela broja.
#include <stdio.h>
int main()
{
int a,b,c, min;
printf("Unesi tri broja: ");
scanf("%d%d%d", &a,&b,&c);
min=a;
if(b<min)
{
min=b;
}
if(c<min)
{
min=c;
}
printf("Minimum je %d.\n",min);
return 0;
}
9)Napisati na jeziku C program za uređivanje tri realna broja po neopadajućem redosledu.
#include <stdio.h>
int main()
{
double a,b,c,temp;
printf("Unesi tri broja: ");
scanf("%lf%lf%lf", &a,&b,&c);
if(a>b)
{
temp=a;
a=b;
b=temp;
}
if(a>c)
{
temp=a;
a=c;
c=temp;
}
if(b>c)
{
temp=b;
b=c;
c=temp;
}
printf("Uređeno %lf %lf %lf\n",a,b,c);
return 0;
}
10) Napisati program u jeziku C koji u zavisnosti od unetog broja, na glavnom izlazu ispisuje da li je broj
paran ili neparan.
#include <stdio.h>
int main()
{
int broj;
printf("Unesi ceo broj: ");
scanf("%d", &broj);
if(broj%2==0)
{
printf("%d je paran broj.\n", broj);
}
else
{
printf("%d je neparan broj.\n", broj);
}
return 0;
}
11)Napisati program na jeziku C koji za dva uneta broja sa standardnog ulaza prikazuje relaciju između ta
dva broja (<,>,=)
#include<stdio.h>
int main()
{
int br1,br2;
printf("Unesi dva broja: ");
scanf("%d%d",&br1,&br2);
if(br1<br2)
{
printf("%d < %d", br1,br2);
}
else if(br1>br2)
{
printf("%d > %d", br1,br2);
}
else
{
printf("%d = %d", br1,br2);
}
return 0;
}
12)Napisati program na jeziku C za rešavanje sistema od dve linearne jednačine sa dve nepoznate.
#include<stdio.h>
int main()
{
double a1,a2,b1,b2,c1,c2,d,dx,dy,x,y;
printf("Unesi koeficijente prve jednacine: ");
scanf("%lf%lf%lf",&a1,&b1,&c1);
printf("Unesi koeficijente druge jednacine: ");
scanf("%lf%lf%lf",&a2,&b2,&c2);
d=a1*b2-a2*b1;
dx=c1*b2-c2*b1;
dy=a1*c2-a2*c1;
if(d!=0)
{
printf("x=%10.2f\n",dx/d);
printf("y=%10.2f\n",dy/d);
}
else{
if(dx==0 && dy==0)
{
printf("Sistem je neodredjen.\n");
}
else
{
printf("Sistem nema resenja.\n")
}
}
return 0;
}
13)Napisati na jeziku C program za rešavanje kvadratne jednačine.
#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,d,x1,x2,y1,y2;
typedef enum{
REALNI,DVOSTRUKI,KOMPLEKSNI,
LINEARNA, POGRESNA
}Vrsta;
Vrsta vrsta;
printf("Unesite sve koeficijente jednacine: ");
scanf("%lf%lf%lf",&a,&b,&c);
if (a){
d=b*b-4*a*c;
if(d>0)
{
vrsta=REALNI;
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
}
else if(d==0){
vrsta=DVOSTRUKI;
x1=-b/(2*a);
}
else if (a!=0 && d<0){
vrsta=KOMPLEKSNI;
x1=-b/(2*a);
y1=sqrt(d)/(2*a);
x2=x1;
y2=-y1;
}
else{
if(b)
{
vrsta=LINEARNA;
x1=-c/b;
}
else
{
vrsta=POGRESNA;
}
}
if(vrsta==REALNI){
printf("Realna resenja su %.2f i%.2f\n",x1,x2);
}
else if (vrsta==DVOSTRUKI){
printf("Dvostruko realno resenje je %.2f\n",x1);
}
else if (vrsta==KOMPLEKSNI){
printf("Cplx resenje su (%.2f,%.2f) i(%.2f,%.2f) \n",x1,y1,x2,y2);
}
else if(vrsta== LINEARNA)
{
printf("Resenje linearne jednacine je %.2f\n",x1);
}
else if(vrsta==POGRESNA)
{
printf("Pogresan unos.");
}
return 0;
}
}
14) Napisati na jeziku C program koji utvrđuje da li je godina prestupna. Program treba da traži od
korisnika da unese godinu, a zatim na ekranu prikazuje da je godina prestupna. Unos ponavljati sve dok
se za godinu ne unese vrednost manja ili jednaka nuli. Godina je prestupna ako je deljiva sa 4 i nije
deljiva sa 100 ili ako je deljiva sa 400.
#include <stdio.h>
int main()
{
int god;
printf("Unesite godinu: ");
scanf("%d",&god);
while(god>0){
if(god%4==0 && god%100!=0 || god%400==0)
{
printf("Godina je prestupna\n\n");
}
else{
printf("Godina nije prestupna\n\n");
}
printf("Unesite godinu: ");
scanf("%d",&god);
}
return 0;
}
15) Napisati na jeziku C program za određivanje godišnjeg doba kome datum pripada.Proleće(21.03. -
20.06), leto(21.06.-22.09.), jesen(23.09.-20.12.), zima(21.12.-20.03.). Program treba da čita datume i da
ispisuje rezultate sve dok za jednu od komponenata datuma ne pročita nulu.
#include <stdio.h>
int main()
{
int dan,mes;
printf("Unesite dan i mesec: ");
scanf("%d%d",&dan,&mes);
while(dan!=0 && mes!=0)
{
if(mes==4 || mes==5 || mes==3 && dan>=21 || mes==6 && dan<=20)
{
printf("Datum pada na prolece.\n\n");
}
else if(mes==7 || mes==8 || mes==6 && dan>=21 || mes==9 && dan<=22)
{
printf("Datum pada na leto.\n\n");
}
else if(mes==10 || mes==11 || mes==9 && dan>=23 || mes==12 && dan<=20)
{
printf("Datum pada na jesen.\n\n");
}
else{
printf("Datum pada na zimu.\n\n");
}
printf("Unesite dan i mesec: ");
scanf("%d%d",&dan,&mes);
}
return 0;
}
16)Napisati na jeziku C program za određivanje narednog datuma u odnosu na zadati dan. Program
treba da čita datume sve dok za jednu od komponenata datuma ne pročita nulu.
#include <stdio.h>
int main()
{
int dan,mes,god,d;
while(1) //petlja će se izvršavati beskonačni proj puta
{
printf("Danas: ");
scanf("%d%d%d",&dan,&mes,&god);
if(dan==0 || mes==0 || god==0)
break;
switch(mes){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
d=31; break;
case 4: case 6: case 9: case 11:
d=30;break;
case 2:
d=28;
if(god %4 ==0 && god%100!=0 || god%400==0)
d++;
}
if(dan<d)
dan++;
else
{
dan=1;
if(mes<12)
mes++;
else{
mes=1;
god++;
}
}
printf("Sutra je %2.2d. %2.2d. %d.\n\n", dan, mes, god);
}
return 0;
}
17) Napisati program na jeziku C za tabeliranje vrednosti izraza y=(x^2-2*x-2)/ x^2+1, za svako
xmin<=x<=xmax sa korakom delta x.
#include <stdio.h>
int main()
{
double xmin, xmax, dx,x,y;
printf("Unesite xmin, xmax i dx: ");
scanf("%lf%lf%lf",&xmin,&xmax,&dx);
printf("\n x y\n========================\n");
for(x=xmin;x<=xmax;x+=dx)
{
y=(x*x-2*x-2)/(x*x+1);
printf("%10.3f%10.3f\n",x,y);
}
return 0;
}
18) Napisati na jeziku C program za izračunavanje vrednosti izraza s=1+2+3+...+n=Σ𝑖𝑛𝑖=1 .
#include <stdio.h>
int main()
{
int n,s=0,i;
printf("Unesi ceo broj: ");
scanf("%d",&n);
for(i=1;i<=n;s+=i++);
printf("s=%d\n",s);
return 0;
}
19) Napisati na jeziku C program za izračunavanje vrednosti izraza s=n!=1*2*3*...*n=Π𝑖𝑛𝑖=1.
#include <stdio.h>
int main()
{
int n,i;
long s=1;
printf("Unesite ceo broj n: ");
scanf("%d",&n);
for(i=1;i<=n;s*=i++);
printf("s=%ld\n",s);
return 0;
}
20) Napisati na jeziku C program za izračunavanje vrednosti izraza s=1!+2!+...+n!=1+1*2+1*2*3+...
+1*2*3*...*n=Σ𝑖!𝑛𝑖=1=ΣΠ𝑗𝑛𝑗=1𝑛𝑖=1.
#include <stdio.h>
int main()
{
int n,i;
long s=0,f=1;
printf("Unesite ceo broj n: ");
scanf("%d",&n);
for(i=1;i<=n;s+=(f*=i++));
printf("s=%ld\n",s);
return 0;
}
21) Napisati na jeziku C program za tabeliranje vrednosti izraza: s=x+x*x+x*x*x+...+x^n=Σ𝑥𝑖𝑛𝑖=1 za svako
xmin<=x<=xmax s korakom delta x.
#include <stdio.h>
int main()
{
int n,i;
double xmin,xmax,dx,x;
printf("Unesite ceo broj n: ");
scanf("%d",&n);
printf("Unesite xmin,xmax,dx");
scanf("%lf%lf%lf",&xmin,&xmax,&dx);
printf("\n x s\n");
printf("====================\n");
for (x=xmin;x<=xmax;x+=dx){
double s=0,p=1;
for(i=1;i<=n;i++)
s+=(p*=x);
printf("%10.3f%10.3f\n",x,s);
}
return 0;
}
22) Napisati na jeziku C program za tabeliranje vrednosti izraza s=x-x*x+x*x*x-...+((-1)^(n-
1))*x^n=Σ(−1)𝑖−1∗𝑥𝑖𝑛𝑖=1 za svako xmin<=x<=xmax sa korakom delta x.
#include <stdio.h>
int main()
{
int n,i;
double xmin,xmax,dx,x;
printf("Unesite ceo broj n: ");
scanf("%d",&n);
printf("Unesite xmin,xmax,dx");
scanf("%lf%lf%lf",&xmin,&xmax,&dx);
printf("\n x s\n");
printf("====================\n");
for (x=xmin;x<=xmax;x+=dx){
double s=0,p=-1;
for(i=1;i<=n;i++)
s+=(p*=-x);
printf("%10.3f%10.3f\n",x,s);
}
return 0;
}
23) Napisati program na jeziku C za izračunavanje aritmetičke sredine i standardne devijacije realnih
brojeva. Program treba da čita i obrađuje nizove i ispisuje dobijene rezultate sve dok za broj elemenata
niza ne pročita nulu iliu negativnu vrednost.
𝑠=1𝑛∗Σ𝑎𝑖𝑛𝑖=1 i 𝑑=√1𝑛∗Σ𝑎𝑖2𝑛𝑖=1−𝑠2.
#include <stdio.h>
#include<math.h>
int main()
{
int n,i;
double xmin,xmax,dx,x;
printf("Unesite broj elemenata niza n: ");
scanf("%d",&n);
while(n>0){
double s=0,d=0;
printf("Elementi niza: ");
for(i=1;i<=n;i++)
{
double a;
scanf("%lf",&a);
s+=a;
d+=a*a;
}
s/=n;
d=sqrt(d/n-s*s);
printf("Srednja vrednost: %.4f\n",s);
printf("Standardna devijacija: %.4f\n",d);
printf("Unesite broj elemenata niza n: ");
scanf("%d",&n);
}
return 0;
}
24) Napisati na jeziku C program koji izračunava s=Σ1𝑖2𝑛𝑖=1 po opadajućem i po rastućem redosledu
sabiraka za proizvoljan broj vrednosti parametra n. Od korisnika tražiti da unosi broj n, a postupak
ponavljati sve dok se ne unese broj manji ili jednak nuli.
#include <stdio.h>
#include<math.h>
int main()
{
while(1){
long n;
int i;
float s1=0, s2=0;
printf("n?");
scanf("%ld",&n);
if(n<=0)
break;
for(i=1;i<=n;i++)
s1+=1./i/i;
for(i=n;i>=1;i--)
s2+=1./i/i;
printf("%ld %10.6f %10.6 f\n",n,s1,s2);
}
return 0;
}
25)Napisati na jeziku C program koji čita decimalne cele brojeve i ispisuje njihovu vrednosti u binarnom
obliku. Pretpostaviti da se za interno predstavljanje celih brojeva koristi po 16 bitova. Program treba da
čita brojeve i da ispisuje rezltate sve dok ne pročita vrednost 9999.
#include <stdio.h>
#include<math.h>
int main()
{
while(1){
short dec,i;
printf("Decimalan broj?");
scanf("%hd",&dec);
if(dec==9999)
break;
printf("Binarni broj: ");
for(i=1;i<=16;i++)
{
short bit=0;
if((dec & 0x8000)!=0)
bit=1;
printf("%d", bit);
if(i%4==0)
printf(" ");
dec<<=1;
}
printf("\n");
}
return 0;
}
26)Napisati program na jeziku C za tabeliranjee vrednosti polinoma koji je zadat nizom koeficijenata za
svako xmin<=x<=xmax sa korakom delta x. p(x)=Σ𝑎𝑖𝑛𝑖=0∗𝑥𝑖
#include <stdio.h>
#include<math.h>
int main()
{
int n,i;
float koeficijenti[200],xmin,xmax,dx,x;
printf("Unesi red polinoma: ");
scanf("%d",&n);
printf("Unesi koeficijente: ");
for(i=n;i>=0;i--)
{
scanf("%f", &koeficijenti[i]);
}
printf("Unesi xmin,xmax,dx: ");
scanf("%f%f%f",&xmin,&xmin,&dx);
printf("\n x ");
printf("p(x)\n===========\n");
for(x=xmin;x<=xmax;x+=dx){
float polinom=0;
for(i=n;i>=0;i--)
polinom+=koeficijenti[i]*pow(x,i);
printf("%10.2f%10.2f\n",x,polinom);
}
return 0;
}
27) Napisati na jeziku C program za izracunavanje srednje vrednosti onih elemenata niza cellih brojeva
koji su deljivi sa tri. Program treba da pročita niz, izvrši traženu obradu, ispiše dobijeni rezultat i ponavlja
prethodne korake sve dok za dužinu niza ne pročita broj manji od 0 ili veći od 100.
#include <stdio.h>
#include<math.h>
int main()
{
while(1){
int a[100],i,k,n;
double s;
printf("Broj elemenata: ");
scanf("%d",&n);
if(n<0 || n>100)
break;
printf("Unesite %d elemenata: ",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(s=i=k=0;i<n;i++)
{
if(a[i]%3==0)
{
s+=a[i];
k++;
}
}
if(k)//k!=0
s/=k;
printf("s=%f\n",s);
}
return 0;
}
28) Napisati na jeziku C program koji pročita dva vektora zadate dužine s realnim komponentama,
izračuna njihov skalarni proizvod i ispisuje dobijeni rezultat. Prethodne radnje ponavljati sve dok se za
dužinu vektora ne pročita broj manji ili jednak nuli ili veći od 50. S=Σ𝑎𝑖∗𝑏𝑖𝑛−1𝑖=0 .
#include <stdio.h>
#define DIM 50
int main()
{
while(1){
double a[DIM],b[DIM], skal_pro;
int i,n;
printf("Dužina vektora (najviše %d)",DIM);
scanf("%d",&n);
if(n<=0 || n>DIM)
break;
printf("Komponente vektora A: ");
for(i=0;i<n;i++)
{
scanf("%lf",&a[i]);
}
printf("Komponente vektora B: ");
for(i=0;i<n;i++)
{
scanf("%lf",&b[i]);
}
for(skal_pro=i=0;i<n;i++)
{
skal_pro+=a[i]*b[i];
}
printf("Skalarni proizvod A*B=%10.3f\n",skal_pro);
}
return 0;
}
29) Napisati na jeziku C program za nalaženje vrednosti najmanjeg elementa u nizu realnih brojeva.
Program treba da čita I obrađuje nizove sve dok se za dužinu niza ne pročita nedozvoljena vrednost.
#include <stdio.h>
#define NMAX 150
int main()
{
while(1){
double a[NMAX],min;
int i,n;
printf("n?");
scanf("%d",&n);
if(n<=0 || n>NMAX)
{
break;
}
printf("Unesi elemente niza: ");
for(i=0;i<n;i++)
scanf("%lf",&a[i]);
min=a[0];
for(i=1;i<n;i++)
if(a[i]<min)
min=a[i];
printf("Najmanji broj u nizu je %.2f\n\n",min);
}
return 0;
}
30) Napisati na jeziku C program za obrtanje redosleda elemenata zadatog niza realnih brojeva. Program
treba da čita i obrađuje nizove sve dok se ne unese nedozvoljena vrednost.
#include <stdio.h>
#define NMAX 100
int main()
{
while(1){
double a[NMAX];
int i,n,j;
printf("n?");
scanf("%d",&n);
if(n<=0 || n>NMAX)
{
break;
}
printf("Unesi elemente niza: ");
for(i=0;i<n;i++)
scanf("%lf",&a[i]);
for(i=0,j=n-1;i<j;i++,j--)
{
double b=a[i];
a[i]=a[j];
a[j]=b;
}
printf("elementi niza: ");
for(i=0;i<n;printf("%.2f",a[i++]));
}
return 0;
}
31) Napisati na jeziku C program za izostavljanje svih elemenata zadatog niza brojeva koji imaju neku
vrednost. Prethodne korake ponavljati sve dok se za dužinu niza ne pročita nedozvoljena vrednost.
#include <stdio.h>
#define NMAX 100
int main()
{
while(1){
int a[NMAX],k,i,n,j;
printf("n?");
scanf("%d",&n);
if(n<=0 || n>NMAX)
{
break;
}
printf("Unesi elemente niza: ");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("Koji broj treba izostaviti: ");
scanf("%d",&k);
for(i=j=0;i<n;i++)
{
if(a[i]!=k)
a[j++]=a[i];
}
n=j;
printf("Elementi niza: ");
for(i=0;i<n;printf("%d",a[i++]));
printf("\n\n");
}
return 0;
}
32) Napisati program na jeziku C kojim se u uređeni niz brojeva umeće novi broj tako da niz i dalje bude
uređen.
#include <stdio.h>
#define NMAX 100
int main()
{
while(1){
int a[NMAX],k,i,n,j;
printf("n?");
scanf("%d",&n);
if(n<=0 || n>NMAX)
{
break;
}
printf("Unesi elemente niza: ");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("Broj koji treba umetnuti: ");
scanf("%d",&k);
for(i=n-1;i>=0 && a[i]>k;i--)
{
a[i+1]=a[i];
}
a[i+1]=k;
n++;
printf("Elementi niza: ");
for(i=0;i<n;printf("%d",a[i++]));
}
return 0;
}
33) Napisati na jeziku C program za razvrstavanje niza brojeva u dva niza tako da se u jednom nalaze
negativni, a u drugom ostali elementi početnog niza.
#include <stdio.h>
#define NMAX 100
int main()
{
while(1){
int a[NMAX],b[NMAX],c[NMAX],na,i,nb,nc;
printf("n?");
scanf("%d",&na);
if(na<=0 || na>NMAX)
{
break;
}
printf("Unesi elemente niza: ");
for(i=0;i<na;i++)
scanf("%d",&a[i]);
for(i=0;i<na;i++){
if(a[i]<0)
{
b[nb++]=a[i];
}
else
{
b[nc++]=a[i];
}
}
printf("Pozitivni brojevi: ");
for(i=0;i<nc;printf("%d",c[i++]));
printf("Negativni brojevi: ");
for(i=0;i<nb;printf("%d",b[i++]));
printf("\n\n");
}
return 0;
}
34) Napisati na jeziku C program za nalaženje fuzije dva niza celih brojeva koji su uređeni po
neopadajućem redosledu u treći, na isti način uređeni niz.
#include <stdio.h>
#define NMAX 100
int main()
{
while(1){
int a[NMAX],b[NMAX],c[2*NMAX],na,ia,nb,nc,ib,ic;
printf("na?");
scanf("%d",&na);
if(na<=0 || na>NMAX)
{
break;
}
printf("Unesi elemente prvog niza: ");
for(ia=0;ia<na;ia++)
scanf("%d",&a[ia]);
printf("nb?");
scanf("%d",&nb);
if(nb<=0 || nb>NMAX)
{
break;
}
printf("Unesi elemente drugog niza: ");
for(ib=0;ib<nb;ib++)
scanf("%d",&b[ib]);
for(ia=ib=ic=0;ia<na && ib<nb;ic++){
if(a[ia]<b[ib])
c[ic]=a[ia++];
else
c[ic]=b[ib++];
}
while(ia<na)
{
c[ic++]=a[ia++];
}
while(ib<nb)
{
c[ic++]=b[ib++];
}
nc=ic;
for(ic=0;ic<nc;printf("%d",c[ic++]));
}
return 0;
}
35) Napisati program na jeziku C za uređivanje niza celih brojeva po neopadajućem redosledu metodom
izbora. Program treba da pročita dužinu niza, popuni niz slučajnim jednocifrenim celim brojevima, ispiše
dobijeni niz, uredi niz, ispiše dobijeni rezultat i ponavlja sve prethodne korake sve dok se za dužinu niza
ne pročita nedozvoljena vrednost.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NMAX 500
int main()
{
srand(time(NULL));//da se ne ponavljaju isti br
while(1){
int n,a[NMAX],b,i,j;
printf("\nUnesi broj elemenata niza: ");
scanf("%d",&n);
if(n<=0 || n>NMAX)
break;
printf("\nPocetni niz: ");
for(i=0;i<n;i++)
printf("%d",a[i]=rand()/(RAND_MAX+1.)*10);
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
b=a[i];
a[i]=a[j];
a[j]=b;
}
}
}
printf("\nUredjeni niz: ");
for(i=0;i<n;printf("%d",a[i++]));
}
return 0;
}
-Funkciju koja generiše slučajne brojeve. Argumenti funkcije su niz celih brojeva i broj
elemenata niza. -Funkciju za sortiranje niza u neopadajuhem poretku. Argumenti funkcije su
niz celih brojeva i broje elemenata niza. -Funkciju za sortiranje niza u nerastućem poretku.
Argumenti funkcije su niz celih brojeva i broje elemenata niza. -Funkciju za ispisivanje niza na
standardnom izlazu. Argumenti funkcije su niz celih brojeva i broj elemenata niza.
-Funkciju koja vraća vrednost najmanjeg elementa u nizu. Argumenti funkcije su niz celih
brojeva i broj elemenata niza. -Funkciju koja vraća vrednost najvećeg elementa u nizu.
Argumenti funkcije su niz celih brojeva i broj elemenata niza. -Funkciju koja vraća sumu svih
elemenata niza. Argumenti funkcije su niz celih brojeva i broj elemenata niza. -Funkciju koja
vraća srednju vrednost elemenata niza. Argumenti funkcije su niz celih brojeva i broj
elemenata niza.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 50
void generisi(int niz[], int br_elem) {
for (int i = 0;
i < br_elem;
niz[i++]= ((double)rand () / RAND_MAX) * MAX * 5
);
}
void sortiraj_neopadajuce(int *niz, int br_elem) {
int tmp;
for (int i = 0; i < br_elem - 1; i++)
for (int j = 0; j < br_elem; j++)
if (niz[i] > niz[j]) {
tmp = niz[i];
niz[i] = niz[j];
niz[j] = tmp;
}
} 17
void sortiraj_nerastuce(int *niz, int br_elem) {
int tmp;
for (int i = 0 ; i < br_elem - 1; i++)
for (int j = i + 1 ; j < br_elem; j++)
if (niz[i] < niz[j]) {
tmp = niz[i];
niz[i] = niz[j];
niz[j] = tmp;
}
}
int minimum(int* niz, int br_elem) {
int min = niz[0];
for (int i =1; i < br_elem; i++)
if (niz[i] < min)
min = niz[i];
return min;
}
int maksimum (int* niz, int br_elem) {
int max = niz[0];
for (int i =1; i < br_elem; i++)
if (niz[i] > max)
max = niz[i];
return max;
}
void ispisi (int *niz, int br_elem) {
for (int i = 0 ; i < br_elem; i++)
printf(“niz [%d] = %d \n”, i , niz [i ] ) ;
}
int sum(int *niz, int br_elem) {
int sum = 0;
for (int i = 0; i < br_elem; sum += niz[i++]);
return sum;
}
double avg ( int * niz , int br_elem) {
return sum ( niz, br_elem) / (double)br_elem;
} 18
void main() {
int niz[MAX], br_elem;
srand (time(NULL));
br_elem = ((double)rand()/ RAND_MAX) + MAX;
generisi(niz, br_elem);
printf(""); ispisi(niz, br_elem);
sortiraj_neopadajuce(niz, br_elem);
ispisi(niz, br_elem);
sortiraj_nerastuce(niz, br_elem);
printf("Minimum: %d\n", minimum (niz, br_elem));
printf("Maksimum: %d\n", maksimum(niz, br_elem));
printf("Suma : %d\n", sum(niz, br_elem));
printf("Srednja vrednost: %.1lf\n", avg(niz, br_elem));
} 19
4) Napisati program na jeziku C koji računa površinu koja nastaje u preseku funkcija f(x)=x* i
g(x)-o na intervalu [o, 1] i rezultat ispisuje na standardnom izlazu. -Najpre uneti broj gađanja.
-Uvesti broj pogodaka i postaviti na 0. -Za svako gađanje ponaosob (ciklus), koristeći generator
pseudo-slučajnih brojeva, izračunati vrednost za h i za u. -Proveriti da li je d(x) <u < f(x) -Ako
jeste, uvećati broj pogodaka (uslovni preskok).
-Kada se ciklus završi, izračunati n pogod/ n To ce dobija iz proporcije- P je površina kvadrata
stranice 1 pa je krajnji rezultat
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#define MAX 10000
double f(double x) {
return pow(x, 2);
}
double g(double x) {
return 0;
}
void main() {
int i, j, n_pog =0;
double x, y;
srand (time(NULL));
for (i = 0; i < MAX; i++) {
x=(double)rand() / RAND_MAX;
y = (double)rand() / RAND_MAX;
if (f(x) > y)
n_pog++;
}
printf("P = %.5f", (double)n_pog / MAX);
}
5) Napisati program na jeziku C koja računa približnu vrednost površine koja nastaje u
preseku funkcija f(x)=x i g(x)=x3 na intervalu [o, 1] i rezultat ispisuje na standardnom izlazu.
Napisati funkcije na programskom jeziku C za pronalazenje f(x) i g(x).
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#define NUKUPNO 10000000
double f(double x) {
return pow(x, 3);
}
double g(double x) {
return x;
}
void main() {
int i, n_pogodaka = 0 ;
double x, y;
srand(time(NULL));
for (i = 0; i < NUKUPNO; i++) {
x = (double)rand() / RAND_MAX;
y = (double)rand() / RAND_MAX;
if (f(x) <= y && g(x) >= y)
n_pogodaka++;
}
printf("P = %.5f\n", (double)n_pogodaka / NUKUPNO);