Professional Documents
Culture Documents
1. Broevi
1. Da se napi{e programa vo programskiot jazik C so koja }e se
presmeta sumata 1k+2k+3k+...nk kade {to n i k se vnesuvaat od
tastatura.
Re{enie:
Vlezni promenlivi Izlezni promenlivi
n kraj na intervalot
i broja~ vo interval s suma (zbir)
k stepen vo intervalot
stepen(n,m) funkcija koja ja presmetuva vrednosta nm
#include<stdio.h>
long int stepen(int n,int m)
{
if(m==0)
return 1;
if(m==1)
return 1;
else
return(n*stepen(n,m-1));
}
int main()
{
int n,k,i;
long int s=0;
printf("Vnesete n: ");
scanf("%d",&n);
printf("Vnesete k: ");
scanf("%d",&k);
for(i=1;i<=n;i++)
s+=stepen(i,k);
printf("Sumata e: %ld \n",s);
return 0;
}
_______________________________________________________Test
primer:
VLEZ:
Vnesete n: 5
Vnesete k: 3
Sumata e: 225.
1
Programski jazik C PISI
Re{enie:
#include<stdio.h>
int main()
{
int i,n,j,s=0;
printf("Vnesete n=");
scanf("%d",&n);
j=1;
for(i=0;i<n;i++)
{
s+=j;
j+=3;
}
printf("Sumata e: %d\n",s);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Vnesete n: 8
Sumata e: 92.
2
Programski jazik C PISI
Re{enie:
#include<stdio.h>
int main()
{
int poc,kraj,a,b,c;
printf("Vnesete pocetok i kraj na intervalot:");
scanf("%d %d",&poc,&kraj);
for(a=poc;a<kraj;a++)
for(b=poc;b<kraj;b++)
for(c=poc;c<kraj;c++)
if(a*a+b*b==c*c)
{
printf("Uslovot go zadovoluvaat
broevite %d, %d i %d.\n",a,b,c);
printf("%d+%d=%d\n\n",a*a,b*b,c*c);
}
return 0;
}
3
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Vnesete po~etok i kraj na intervalot:5 15
Programata pe~ati:
Uslovot go zadovoluvaat broevite 5, 12 i 13.
25+144=169
Uslovot go zadovoluvaat broevite 6, 8 i 10.
36+64=100
Uslovot go zadovoluvaat broevite 8, 6 i 10.
64+36=100
Uslovot go zadovoluvaat broevite 8, 15 i 17.
64+225=289
Uslovot go zadovoluvaat broevite 9, 12 i 15.
81+144=225
Uslovot go zadovoluvaat broevite 12, 5 i 13.
144+25=169
Uslovot go zadovoluvaat broevite 12, 9 i 15.
144+81=225
4
Programski jazik C PISI
Re{enie:
#include<stdio.h>
int main()
{
int a,b,c,k=0,s=0;
printf("Vnesete pocetok i kraj na intervalot: ");
scanf("%d %d",&a,&b);
printf("Vnesete cekor: ");
scanf("%d",&c);
while((a+k*c)<b)
{
printf("%d+",a+k*c);
s=s+(a+k*c);
k++;
}
printf("0=%d\n",s);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
1+4+7+10+13+0=35
5
Programski jazik C PISI
Re{enie:
#include<stdio.h>
int main()
{
int n,pom,i,j,prost;
printf("Vnesete n=");
scanf("%d",&n);
for(i=2;i<n;i++)
{
prost=1;
j=2;
while(prost && j<=(i/2))
{
if(i%j==0)
prost=0;
j++;
}
if (prost)
{
if(pom+2==i)
printf("Takvi broevi se %d i %d.\n",pom,i);
pom=i;
}
}
return 0;
}
6
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Vnesete n=50
Programata pe~ati:
Takvi broevi se 3 i 5.
Takvi broevi se 5 i 7.
Takvi broevi se 11 i 13.
Takvi broevi se 17 i 19.
Takvi broevi se 29 i 31.
Takvi broevi se 41 i 43.
7
Programski jazik C PISI
Re{enie:
#include<stdio.h>
int main()
{
int pom,poc,kraj,i,a,deliv;
printf("Vnesete pocetok i kraj na intervalot=");
scanf("%d %d",&poc,&kraj);
for(i=poc;i<=kraj;i++)
{
pom=i;
deliv=1;
while(pom>0)
{
a=pom%10;
if(a!=0)
{
if(i%a!=0)
deliv=0;
}
pom/=10;
}
if(deliv==1)
printf("Uslovot e ispolnet kaj brojot %d\n",i);
8
Programski jazik C PISI
}
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Uslovot e ispolnet kaj brojot 20
Uslovot e ispolnet kaj brojot 22
Uslovot e ispolnet kaj brojot 24
Uslovot e ispolnet kaj brojot 30
9
Programski jazik C PISI
Re{enie:
#include<stdio.h>
#include<math.h>
int main()
{
int poc,kraj,i,j,n,br;
printf("Vnesete pocetok i kraj na intervalot=");
scanf("%d %d",&poc,&kraj);
printf("Vnesete kolku deliteli da se baraat po broj=");
scanf("%d",&n);
for(i=poc;i<=kraj;i++)
{
j=2;
br=1;
while(j<=i/2)
{
if(i%j==0)
br++;
j++;
}
if(br==n)
printf("Uslovot e ispolnet kaj brojot %d.\n",i);
}
return 0;
}
10
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Uslovot e ispolnet kaj brojot 6.
Uslovot e ispolnet kaj brojot 8.
Uslovot e ispolnet kaj brojot 10.
Uslovot e ispolnet kaj brojot 14.
Uslovot e ispolnet kaj brojot 15.
11
Programski jazik C PISI
Re{enie:
i broja~ vo interval
#include<stdio.h>
int main()
{
int poc,kraj,i;
printf("Vnesete pocetok i kraj na intervalot:");
scanf("%d %d",&poc,&kraj);
for(i=poc;i<=kraj;i++)
if(i%3==0 || i%5==0 || i%7==0)
printf("Brojot %d e deliv so eden od broevite 3, 5 ili 7.\n",i);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
12
Programski jazik C PISI
Re{enie:
i broja~ vo interval
#include<stdio.h>
int main()
{
int poc,kraj,i;
printf("Vnesete pocetok i kraj na intervalot:");
scanf("%d %d",&poc,&kraj);
for(i=poc;i<=kraj;i++)
if(i%2==0 && i%3==0 && i%6==0)
printf("Brojot %d e deliv so broevite 2, 3 i 6.\n",i);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
13
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
n proizvolen broj
a cifri od brojot
pomo{na promenliva
pom koja go pomni vneseniot
broj
#include<stdio.h>
int main()
{
int n,a,pom;
printf("Vnesete broj:");
scanf("%d",&n);
pom=n;
printf("Brojot e sostaven od cifrite: ");
while(pom>0)
{
a=pom%10;
printf("%d ",a);
pom/=10;
}
printf("\n");
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Vnesete broj:9564
Programata pe~ati:
14
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
poc po~etok na intervalot
kraj kraj na intervalot
i broja~ vo intervalot
cifra vo dekaden ili
a
binaren broj
pomo{na promenliva vo bin binaren broj
pom koja se ~uva dekadniot
broj
obraten broj na
m
binarniot broj
#include<stdio.h>
int main()
{
int poc,kraj,i,pom,a,poz;
long int bin,bin2,m;
printf("Vnesete pocetok i kraj na intervalot:");
scanf("%d %d",&poc,&kraj);
for(i=poc;i<=kraj;i++)
{
pom=i;
bin=0;
poz=1;
while(pom>0)
{
a=pom%2;
bin+=a*poz;
poz*=10;
pom/=2;
}
bin2=bin;
m=0;
15
Programski jazik C PISI
while(bin2>0)
{
a=bin2%10;
m=m*10+a;
bin2/=10;
}
if(bin==m)
printf("Dekadniot broj %d, pretvoren vo binaren e
palindrom i e %d.\n",i,bin);
}
return 0;
}
_______________________________________________________Test
primer:
VLEZ:
Programata pe~ati:
16
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
a,b,c proizvolni broevi
#include<stdio.h>
int main()
{
float a,b,c;
printf("Vnesete gi trite broja:");
scanf("%f %f %f",&a,&b,&c);
if(a>=b && a>=c)
printf("Najgolem e %.1f\n",a);
if(b>=a && b>=c)
printf("Najgolem e %.1f\n",b);
if(c>=a && c>=b)
printf("Najgolem e %.1f\n",c);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Najgolem e 102.5
17
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
x proizvolen broj
br broj na deliteli
#include<stdio.h>
int main()
{
int x,i,j,br=0;
printf("Vnesete broj=");
scanf("%d",&x);
j=2;
while(br==0 && j<=(x/2))
{
if(x%j==0)
{
br++;
i=j;
}
j++;
}
if(br!=0)
printf("Najmaliot delitel e %d.\n",i);
else
printf("Brojot e prost.\n");
return 0;
}
18
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Vnesete broj=39
Programata pe~ati:
Najmaliot delitel e 3.
19
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
n proizvolen broj
#include<stdio.h>
int main()
{
int n,a,pom,m=0;
printf("Vnesete priroden broj=");
scanf("%d",&n);
pom=n;
while (pom>0)
{
a=pom%10;
m=m*10+a;
pom/=10;
}
printf("Obratniot broj e %d.\n",m);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Obratniot broj e 654321
20
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
po~etok na
poc
intervalot
broja~i vo
i
intervalot
obraten broj na
m
brojot od intervalot
a cifra od brojot
pomo{na promenliva
pom vo koja se pomni broj
od intervalot
#include<stdio.h>
int main()
{
int m,poc,kraj,i,pom,a;
printf("Vnesete pocetok i kraj na intervalot: ");
scanf("%d %d",&poc,&kraj);
for(i=poc;i<=kraj;i++)
{
m=0;
pom=i;
while (pom>0)
{
a=pom%10;
m=m*10+a;
pom/=10;
}
if(i==m)
printf("Palindrom e brojot %d.\n",i);
}
21
Programski jazik C PISI
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
22
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
i,j broja~i
m obraten broj
s zbir na dva broja
a cifra od brojot
#include<stdio.h>
int main()
{
int i,j,s,p,a,pom,m;
for(i=1;i<100;i++)
for(j=1;j<100;j++)
{
m=0;
s=i+j;
p=i*j;
pom=p;
while(pom>0)
{
a=pom%10;
m=m*10+a;
pom/=10;
}
if(s==m)
{
printf("Uslovot e zadovolen kaj parot broevi %d i
%d.\n",i,j);
printf("%d+%d=%d, a %d*%d=%d\n",i,j,s,i,j,p);
printf("\n");
}
}
23
Programski jazik C PISI
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
24
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
poc po~etok na intervalot
i broja~ vo intervalot
deliteli na brojot od
j
intervalot
prima vrednost 1 ako
prost brojot e prost i 0 ako
brojot ne e prost
#include<stdio.h>
#include<math.h>
int main()
{
int poc,kraj,i,j,prost=1;
printf("Vnesete pocetok i kraj na intervalot=");
scanf("%d %d",&poc,&kraj);
for(i=poc;i<=kraj;i++)
{
prost=1;
j=2;
while(prost && j<(i/2))
{
if(i%j==0)
prost=0;
j++;
}
if (prost)
printf("Prost broj e %d.\n",i);
}
return 0;
}
25
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Prost broj e 23.
Prost broj e 29.
Prost broj e 31.
Prost broj e 37.
Prost broj e 41.
Prost broj e 43.
Prost broj e 47.
Prost broj e 53.
Prost broj e 59.
26
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
proizvolen priroden
n
broj
prost faktor (mno`itel)
x
na brojot
i deliteli na brojot
#include<stdio.h>
int main()
{
int n,x,i;
printf("Vnesete pozitiven cel broj:");
scanf("%d",&x);
n=x;
i=2;
do
{
if(n%i==0)
{
n=n/i;
printf("%d X ",i);
}
else
i++;
} while(n!=1);
printf("1=%d\n",x);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Vnesete pozitiven cel broj: 228
Programata pe~ati:
2 X 2 X 3 X 19 X 1=228
27
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
i,j broja~i
s suma na dva broja
a cifra od broj
pomo{na promenliva
pom proizvod na dva
vo koja se pomni broj p
broja
invS obraten broj
#include<stdio.h>
int main()
{
int i,j,pom,a,p,s,invS;
for(i=1;i<10;i++)
for(j=100;j<1000;j++)
{
p=i*j;
s=i+j;
pom=s;
invS=0;
while(pom>0)
{
a=pom%10;
invS=invS*10+a;
pom/=10;
}
if(p==invS)
printf("Parot broevi e: %d i %d.\n",i,j);
}
return 0;
}
28
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
29
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
poc po~etok na interval
#include<stdio.h>
int main()
{
int i,poc,kraj,br=0,j=0,pom;
printf("Vnesete pocetok i kraj na intervalot: ");
scanf("%d %d",&poc,&kraj);
for(i=poc;i<=kraj;i++)
{
j=1;
pom=i;
while(j<=pom/2)
{
if(i%j==0)
br++;
j++;
}
}
printf("Vkupen broj na deliteli e %d.\n",br);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Vnesete po~etok i kraj na intervalot: 10 30
Programata pe~ati:
Vkupen broj na deliteli e 67.
30
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
i broja~ vo intervalot
cifrite na stotkite,
desetkite i
x,y,z
edinicite na sekoj
broj od intervalot
#include<stdio.h>
int main()
{
int i,x,y,z;
for(i=100;i<1000;i++)
{
z=i%10;
y=(i/10)%10;
x=i/100;
if (i==x+y*y+z*z*z)
{
printf("%d",i);
printf("\n");
}
}
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
135
175
518
598
31
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
i broja~ vo intervalot
i broja~ vo intervalot
odnos pome|u
n proizvodot i zbirot
od cifrite
pomo{na promenliva
pom
vo koja se pomni broj
s zbir od cifrite
p proizvod od cifrite
a cifra od broj
#include<stdio.h>
int main()
{
int i,pom,n,p=1,s=0,a,poc,kraj;
printf("Vnesete pocetok i kraj na intervalot: ");
scanf("%d %d",&poc,&kraj);
printf("Vnesete n (kolku pati da e pomal zbirot od proizvodot na
cifrite) =");
scanf("%d",&n);
for(i=poc;i<=kraj;i++)
{
s=0;
p=1;
if(i<10)
{
printf("Mnogu mal broj!\n");
return 0;
}
32
Programski jazik C PISI
pom=i;
while(pom>0)
{
a=pom%10;
p*=a;
s+=a;
pom/=10;
}
if(s*n==p)
printf("Uslovot e ispolnet kaj brojot %d\n",i);
}
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
33
Programski jazik C PISI
i broja~ vo intervalot
s suma (zbir)
p proizvod
x cifra od brojot
pomo{na promenliva
pom vo koja se pomni broj
od intervalot
#include<stdio.h>
int main()
{
int i,x,s,p,poc,kraj,pom;
printf("Vnesete pocetok i kraj na intervalot =");
scanf("%d %d",&poc,&kraj);
for(i=poc;i<=kraj;i++)
{
s=0;
p=1;
pom=i;
while(pom>0)
{
x=pom%10;
s+=x*x*x;
p*=x*x*x;
pom/=10;
}
if(i==s+p)
printf("Uslovot e ispolnet kaj brojot %d.\n",i);
}
return 0;
}
34
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
35
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
n kraj na intervalot
i broja~ vo intervalot
deliteli na broj od
j
intervalot
broj zbir na deliteli
#include<stdio.h>
int main()
{
int broj,i,j,n;
printf("Vnesete do koj broj da se proveruva:\t");
scanf("%d",&n);
printf("Sovrseni broevi pomali od brojot %d se brooevite: ",n);
for (i=1;i<=n;i++)
{
broj=0;
for (j=1;j<=i/2;j++)
{
if (i%j==0)
broj+=j;
}
if (broj==i)
printf("%d ,",i);
}
printf("\n\n");
system("pause");
return 0;
}
36
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
37
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
n kraj na interval pomo{na promenliva
pom vo koja se pomni
broja~ vo brojot ~ij zbir na
i
intervalot deliteli e najgolem
deliteli na broj
j najgolema vrednost od
od intervalot max
zbirot na delitelite
zbird zbir na deliteli
#include<stdio.h>
int main()
{
int n,i,j,zbird,max=0,pom;
do
{
printf("Vneste do koj broj da se proveruva:\t");
scanf("%d",&n);
}
while (n<0);
for (i=1;i<=n;i++)
{
zbird=0;
for (j=1;j<=i;j++)
{
if (i%j==0)
zbird+=j;
}
if (max<zbird)
{
max=zbird;
pom=i;
}
}
printf("\n\nOd site broevi pomali od brojot %d najgolem zbir na
deliteli\n",n);
printf("ima brojot %d i toj zbir iznesuva %d.\n\n\n",pom,max);
38
Programski jazik C PISI
system("pause");
return 0;
}
_______________________________________________________
Test primer
VLEZ:
39
Programski jazik C PISI
2. Matemati~ki zada~i
1. Da se napi{e programa vo programskiot jazik C so koja }e se
presmeta koli~nikot na dva broja na n decimali.
Re{enie:
Vlezni promenlivi Izlezni promenlivi
x,y broevi koi se delat
r cifra od rezultatot
i broja~
#include<stdio.h>
int main()
{
int x,y,i;
int n,ost,r;
printf("Vnesete dva broja:");
scanf("%d %d",&x,&y);
printf("Na kolku decimali da se presmeta:");
scanf("%d",&n);
printf("%d/%d=%d.",x,y,x/y);
ost=x%y;
for(i=1;i<=n;i++)
{
ost*=10;
r=ost/y;
printf("%d",r);
ost=ost-y*r;
}
printf("\n");
return 0;
}
40
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
22/7=3.14285714
41
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
strani na
a,b,c
triagolnikot
plo{tina na
p
vrednosta s vo triagolnikot
s
Heronovata formula
#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c;
double p,s;
printf("Vnesete gi stranite na triagolnikot: ");
scanf("%f %f %f",&a,&b,&c);
if(a+b>c && a+c>b && c+a>b)
{
s=(a+b+c)/(2*1.0);
p=sqrt(s*(s-a)*(s-b)*(s-c));
printf("Plostinata na triagolnikot so strani %.1f %.1f i %.1f
= %.1f\n",a,b,c,p);
}
else
printf("Vnesenite strani ne mozat da formiraat
triagolnik.\n");
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Plo{tinata na triagolnikot so strani 12.0 25.0 i 18.0 = 100.6
42
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
d1,m1, datum na ra|awe
g1 (den, mesec i godina)
starost vo denovi,
d3,m3,g3
d2,m2, dene{en datum (den, meseci i godini
g2 mesec i godina)
#include<stdio.h>
int main()
{
int g1,m1,d1,g2,m2,d2,g3,m3,d3;
printf("Vnesete datum na raganje (den, mesec, godina):");
scanf("%d %d %d",&d1,&m1,&g1);
printf("Vnesete denesen datum (den, mesec, godina):");
scanf("%d %d %d",&d2,&m2,&g2);
if(d2<d1)
{
d2=d2+30;
m2-=1;
}
d3=d2-d1;
if(m2<m1)
{
m2=m2+12;
g2-=1;
}
m3=m2-m1;
g3=g2-g1;
printf("Vasata starost e: %d godini, %d meseci, %d
dena.\n",g3,m3,d3);
return 0;
}
43
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
44
Programski jazik C PISI
#include<stdio.h>
#include<math.h>
int main()
{
int x;
printf(" Tabela na funkcii \n");
x=0;
printf("--------------------------------\n");
while(x<=10)
{
printf(" %d | %d %.2f %d
\n",x,x*x,float(sqrt(x)),x*x*x);
x++;
}
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Tabela na funkcii
--------------------------------
0 | 0 0.00 0
1 | 1 1.00 1
2 | 4 1.41 8
3 | 9 1.73 27
4 | 16 2.00 64
5 | 25 2.24 125
6 | 36 2.45 216
7 | 49 2.65 343
8 | 64 2.83 512
9 | 81 3.00 729
10 | 100 3.16 1000
45
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
koordinati na
x1,y1,r1 centarot i radiusot
na prvata kru`nica
koordinati na
x2,y2,r2 centarot i radiusot
na vtorata kru`nica
rastojanie pome|u
d centrite na dvete
kru`nici
#include<stdio.h>
#include<math.h>
int main()
{
int x1,y1,x2,y2,r1,r2;
float d;
printf("Vneste ja x koordinatata na centarot na prvata kruznica\t");
scanf("%d",&x1);
printf("Vneste ja y koordinatata na centarot na prvata kruznica\t");
scanf("%d",&y1);
printf("Vneste go radiusot na prvata kruznica\t");
scanf("%d",&r1);
printf("Vneste ja x koordinatata na centarot na vtorata kruznica\t");
scanf("%d",&x2);
printf("Vneste ja y koordinatata na centarot na vtorata kruznica\t");
scanf("%d",&y2);
printf("Vneste go radiusot na vtorata kruznica\t");
scanf("%d",&r2);
d=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
printf("\n\n");
if (d==(r1+r2))
printf("Kruznicite se dopiraat od nadvor\n\n");
if (d>(r1+r2))
printf("Kruznicite se razminuvaat\n\n");
if ((d>abs(r1-r2)) && (d<(r1+r2)))
printf("Kruznicite se secat\n\n");
if (d==abs(r1-r2))
46
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Kru`nicite se razminuvaat.
47
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
vrednost za to~nost do
e
koja }e se proveruva
i broja~ vo intervalot
prethodna vrednost na E vrednost na izrazot
prethodna
E
vrednost na sekoj ~len
x od razvojot E koja se
stepenuva na n
#include<stdio.h>
#include<math.h>
int main()
{
float n=1,x,prethodna=2,E,e;
printf("Vneste vrednost do koja ke se proveruva\t");
scanf("%f",&e);
n++;
x=1+1/n;
E=pow(x,n);
while ((E-prethodna)>e)
{
prethodna=E;
n++;
x=1+1/n;
E=pow(x,n);
}
printf("\n\nVrednosta na brojot e so tocnost do %8.7f iznesuva
e=%8.7f.",e,E);
printf("\n\n\n");
system("pause");
return 0;
}
48
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
49
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
vkupen broj na
brojbank
suma vrednost na sumata banknoti
broj na banknoti od
bank10
po 10 denari
broj na banknoti od
pomo{na promenliva bank20
po 20 denari
pom vo koja se pomni
broj na banknoti od
vkupnata suma bank50
po 50 denari
#include<stdio.h>
int main()
{
int suma,brojbank=0,bank50=0,bank20=0,bank10=0,pom;
do
{
printf("Vnesete ja vkupnata suma (sumata da e deliva so 10):\t");
scanf("%d",&suma);
}
while (suma%10!=0);
pom=suma;
bank50=suma/50;
brojbank+=bank50;
suma-=bank50*50;
if (suma>0)
{
bank20=suma/20;
brojbank+=bank20;
suma-=bank20*20;
}
if (suma>0)
{
bank10=suma/10;
brojbank+=bank10;
}
printf("\n\nVkupnata suma od %d denari moze da se isplati so pomos
na %d banknoti\n",pom,brojbank);
50
Programski jazik C PISI
VLEZ:
51
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
n vkupen broj na broevi
i broja~
#include<stdio.h>
#include<math.h>
main()
{
int i,n,x;
float gsredina,t,proizvod=1;
printf("Vnesete od kolku broevi da se bara geometriska sredina\t");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
printf("Vnesete go %d-iot broj: \t",i);
scanf("%d",&x);
proizvod=proizvod*x;
};
t=log(proizvod)/n;
gsredina=exp(t);
printf("\n\n\nGeometriskata sredina od broevite iznesuva
%6.3f\n",gsredina);
system("Pause");
}
52
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Vnesete od kolku broevi da se bara geometriska sredina 6
53
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
vrednost na prvoto realno
a koeficientot pred koren1 re{enie na kvad-
kvadratniot ~len ratnata ravenka
vrednost na vtoroto realno
b koeficientot pred koren 2 re{enie na kvad-
linearniot ~len ratnata ravenka
realen del od
vrednost na kompleksnoto re-
c re
slobodniot ~len {enie na kvad-
ratnata ravenka
imaginarniot del
vrednost na od kompleksnoto
d diskriminantata na im re{enie na
kvadratnata ravenka kvadratnata
ravenka
#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c;
float d,koren1,koren2,re,im;
do
{
printf("Vneste go koeficientot pred kvadratniot clen (a!=0):\t");
scanf("%f",&a);
}
while (a==0);
printf("Vneste go koeficientot pred linearniot clen(b):\t");
scanf("%f",&b);
printf("Vnesete go slobodniot clen (c):\t");
scanf("%f",&c);
d=b*b-4*a*c;
if (d>=0)
{
koren1=(-b-sqrt(d)/(2*a);
54
Programski jazik C PISI
koren2=(-b+sqrt(d)/(2*a);
printf("\n\nResenijata na kvadratnata ravenka se: x1=%4.2f i x2=
%4.2 f\n\n" ,koren1, koren2);
}
else
{
re=-b/(2*a);
im=sqrt(-1*d)/(2*a);
printf("\n\nResenijata na kvadratnata ravenkata se x1=%4.2f-
i*%4.2f i\n", re, im);
printf("x2=%4.2f+i*%4.2f\n\n\n",re,im);
}
system("pause");
return 0;
}
_______________________________________________________
Test primer
VLEZ
55
Programski jazik C PISI
#include<stdio.h>
#include<math.h>
main()
{
float i,n;
float koren=0,zbir;
zbir=2+sqrt(2);
printf("Vnesete go brojot na korenite\t");
scanf("%f",&n);
for (i=1; i<n; i++)
{
koren =sqrt(zbir);
zbir=koren+2;
}
printf("\n\nVrednosta na izrazot iznesuva %6.4f.\n\n",koren);
system("pause");
}
_______________________________________________________
Test primer
VLEZ:
56
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
vrednost na
n
parametarot n y vrednost na funkcijata
x broja~ vo intervalot
#include<stdio.h>
#include<math.h>
int main()
{
float n,x,y;
printf("Vneste vrednost za parametarot n:\t");
scanf("%f",&n);
printf("\n\n_______________________________________\n");
printf(" x y\n");
printf("_______________________________________\n");
for (x=-4;x<=4;x+=0.5)
{
if (x>=0)
{
y=x+pow(x,n)/n-pow(x,n+2)/(n+2);
printf(" %4.2f %6.4f\n",x,y);
}
else
{
y=-pow(x,n-1)/(n-1)+pow(x,n+1)/(n+1);
printf(" %4.2f %6.4f\n",x,y);
}
}
printf("\n____________________________________\n\n\n");
57
Programski jazik C PISI
system("pause");
return 0;
}
_______________________________________________________
Test primer
VLEZ:
___________________________________
x y
___________________________________
-4.00 618.6667
-3.50 268.8620
-3.00 101.2500
-2.50 30.9245
-2.00 6.6667
-1.50 0.6328
-1.00 -0.0833
-0.50 -0.0130
0.00 0.0000
0.50 0.5051
1.00 1.0571
1.50 0.5779
2.00 -9.8857
2.50 -65.1618
3.00 -260.8286
3.50 -810.5891.
4.00 -2131.7715
______________________________________
58
Programski jazik C PISI
3. Nizi
1. Da se napi{e programa vo programskiot jazik C so koja }e se
izbri{at site elementi od dadena niza koi se javuvaat pove}e
od edna{. Nizata se vnesuva od tastatura.
Re{enie:
#include<stdio.h>
int main()
{
int a[100],j,i,n,p;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
i=0;
while(i<n)
{
for(j=i+1;j<n;j++)
if(a[i]==a[j])
{
for(p=j;p<n;p++)
{
a[p]=a[p+1];
}
n--;
59
Programski jazik C PISI
}
if(a[i]!=a[i+1])
i++;
}
printf("Novata niza e: ");
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
60
Programski jazik C PISI
Re{enie:
#include<stdio.h>
int main()
{
int i,n,a[100],b[100],j,x,br;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata:\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("Vnesete broj=");
scanf("%d",&x);
br=0;
j=0;
i=0;
while(br==0 && i<n)
61
Programski jazik C PISI
{
if(a[i]!=x)
{
b[j]=a[i];
j++;
}
else
br++;
i++;
}
for(i=j;i<n-1;i++)
b[i]=a[i+1];
printf("Novata niza e:\n");
for(i=0;i<n-1;i++)
printf("%d ",b[i]);
printf("\n");
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Novata niza e:
2 48 15 8
62
Programski jazik C PISI
Re{enie:
#include<stdio.h>
#include<math.h>
int main()
{
int a[100],i,n,pom;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
pom=int(sqrt(a[i]));
if(sqrt(a[i])==pom)
printf("Broj koj sto e poln kvadrat e %d, a
korenuvan e %d.\n",a[i],pom);
}
return 0;
}
63
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
64
Programski jazik C PISI
Re{enie:
#include<stdio.h>
int main()
{
int a[100],brMin=0,brMax=0,min,max,i,n;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata:\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
max=a[0];
for(i=0;i<n;i++)
if(a[i]>max)
max=a[i];
min=a[0];
for(i=0;i<n;i++)
if(a[i]<min)
min=a[i];
for(i=0;i<n;i++)
if(a[i]==max)
brMax++;
65
Programski jazik C PISI
for(i=0;i<n;i++)
if(a[i]==min)
brMin++;
printf("Najgolemiot broj se javuva %d pati.\n",brMax);
printf("Najmaliot broj se javuva %d pati.\n",brMin);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Najgolemiot broj se javuva 2 pati.
Najmaliot broj se javuva 2 pati.
66
Programski jazik C PISI
Re{enie:
brojot na elementite vo
n
nizata
razlika pome|u
ras vrednosta vo pom i
i broja~ vo nizata brojot m
m proizvolen broj
#include<stdio.h>
#include<math.h>
int main()
{
int a[100],i,ras=0,m,n,pom;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("Vnesete broj=");
scanf("%d",&m);
ras=abs(m-a[0]);
pom=a[0];
for(i=1;i<n;i++)
if(abs(m-a[i])<ras)
{
pom=a[i];
67
Programski jazik C PISI
ras=abs(m-a[i]);
}
printf("Najblisku do %d e %d.\n",m,pom);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Najblisku do 2 e 1.
68
Programski jazik C PISI
Re{enie:
brojot na elementite vo
n broj na pojavuvawa na
nizata br
brojot m
i broja~ vo nizata
#include<stdio.h>
int main()
{
int a[100],i,br=0,m,n;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("Koj broj da se bara? ");
scanf("%d",&m);
for(i=0;i<n;i++)
{
if(a[i]==m)
{
printf("Brojot e najden na %d-ta pozicija.\n",i+1);
br++;
}
}
69
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Kolku elementi da ima nizata? 6
Vnesete ja nizata.
a[0]=5 a[1]=8 a[2]=2 a[3]=3 a[4]=8 a[5]=10
Koj broj da se bara? 8
Programata pe~ati:
Brojot e najden na 2-ta pozicija.
Brojot e najden na 5-ta pozicija.
I se pojavil 2 pati.
70
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od karakteri koja
mo`e da ima najmnogu 20
str[20]
karakteri
i broja~ vo nizata
#include<stdio.h>
int main()
{
char ch,str[20],a,i=0,br=0;
printf("Vnesete go zborot: ");
while(i<20 && (ch=getchar())!='\n')
{
str[i]=ch;
i++;
}
str[i]='\0';
printf("Vnesete ja bukvata: ");
scanf("%c",&a);
i=0;
while(i<20 && (str[i])!='\0')
{
if(str[i]==a)
br++;
i++;
}
printf("Bukvata %c se pojavila %d pati\n",a,br);
return 0;
}
71
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
72
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od karakteri koja
mo`e da ima najmnogu 20
zbor[20]
karakteri
a element od nizata
i broja~ vo nizata
#include<stdio.h>
#include<ctype.h>
int main()
{
char zbor[20],a;
int i=0;
printf("Vnesete go zborot: ");
while(i<20 && (a=getchar())!='\n')
zbor[i++]=a;
zbor[i]=0;
i=1;
zbor[0]=toupper(zbor[0]);
while(zbor[i]!=0)
{
zbor[i]=tolower(zbor[i]);
i++;
}
printf("Normaliziraniot zbor e %s\n",zbor);
return 0;
}
73
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
74
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od karakteri koja
mo`e da ima najmnogu 20
zbor[20]
karakteri
a element od nizata
i broja~ vo nizata
#include<stdio.h>
int main()
{
char zbor[20],a;
int i=0, tocno=1;
printf("Vnesete go zborot: ");
while(i<20 && (a=getchar())!='\n')
{
zbor[i]=a;
i++;
}
zbor[i]=0;
if(zbor[0]>='A' && zbor[0]<='Z')
{
i=1;
while(tocno==1 && zbor[i]!='\0')
{
if(zbor[i]>='A' && zbor[i]<='Z')
tocno=0;
i++;
}
75
Programski jazik C PISI
}
else
tocno=0;
if(tocno)
printf("Zborot e pravilno napisan.\n");
else
printf("Zborot e nepravilno napisan.\n");
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Vnesete go zborot: list
Programata pe~ati:
76
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od karakteri koja
mo`e da ima najmnogu 20
zbor[20]
karakteri
a element od nizata
#include<stdio.h>
int main()
{
char zbor[20],a;
int i=0,j,tocno;
printf("Vnesete go zborot: ");
while(i<20 && (a=getchar())!='\n')
zbor[i++]=a;
zbor[i]=0;
j=0;
while(j<i/2)
{
if(zbor[j]==zbor[i-j-1])
tocno=1;
else
tocno=0;
j++;
}
if(tocno)
printf("Zborot %s e palindrom.\n",zbor);
77
Programski jazik C PISI
else
printf("Zborot %s ne e palindrom.\n",zbor);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
78
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
nizi od celi broevi
a[100],b[100] koi mo`e da imaat
c[100] najmnogu 100 elementi
broj na elementi vo
n
prvata niza
elementi vo vtorata
m
niza
#include<stdio.h>
int main()
{
int a[100],b[100],c[100],j,i,m,n,p,k=0;
printf("Kolku elementi da ima prvata niza: ");
scanf("%d",&n);
printf("Vnesete ja prvata niza.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("Kolku elementi da ima vtorata niza: ");
scanf("%d",&m);
printf("Vnesete ja vtorata niza.\n");
for(i=0;i<m;i++)
{
printf("b[%d]=",i);
scanf("%d",&b[i]);
}
printf("Unijata na nizite e: ");
for(i=0;i<n;i++)
79
Programski jazik C PISI
{
c[k]=a[i];
k++;
}
for(j=0;j<m;j++)
{
c[k]=b[j];
k++;
}
i=0;
while(i<k)
{
for(j=i+1;j<k;j++)
if(c[i]==c[j])
{
for(p=j;p<k;p++)
{
c[p]=c[p+1];
}
k--;
}
if(c[i]!=c[i+1])
i++;
}
for(i=0;i<k;i++)
printf("%d ",c[i]);
printf("\n",k);
return 0;
}
80
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Unijata na nizite e: 5 9 4 3 6 8
81
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
nizi od celi broevi
a[100],b[100] koi mo`e da imaat
c[100] najmnogu 100 elementi
broj na elementi vo
n
prvata niza
elementi vo vtorata
m
niza
#include<stdio.h>
int main()
{
int a[100],b[100],c[100],j,i,m,n,p,k=0;
printf("Kolku elementi da ima prvata niza: ");
scanf("%d",&n);
printf("Vnesete ja prvata niza.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("Kolku elementi da ima vtorata niza: ");
scanf("%d",&m);
printf("Vnesete ja vtorata niza.\n");
for(i=0;i<m;i++)
{
printf("b[%d]=",i);
scanf("%d",&b[i]);
}
printf("Presekot na nizite e: ");
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(a[i]==b[j])
82
Programski jazik C PISI
{
c[k]=a[i];
k++;
}
i=0;
while(i<k)
{
for(j=i+1;j<k;j++)
if(c[i]==c[j])
{
for(p=j;p<k;p++)
{
c[p]=c[p+1];
}
k--;
}
if(c[i]!=c[i+1])
i++;
}
for(i=0;i<k;i++)
printf("%d ",c[i]);
printf("\n",k);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Presekot na nizite e: 4 6
83
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
nizi od celi broevi
a[100]
koi mo`e da imaat
b[100]
najmnogu 100 ele-menti
c[100]
broj na elementi vo
n
prvata niza
elementi vo vtorata
m
niza
#include<stdio.h>
int main()
{
int a[100],b[100],c[100],j,i,m,n,p,k=0,nasol=0;;
printf("Kolku elementi da ima prvata niza: ");
scanf("%d",&n);
printf("Vnesete ja prvata niza.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("Kolku elementi da ima vtorata niza: ");
scanf("%d",&m);
printf("Vnesete ja vtorata niza.\n");
for(i=0;i<m;i++)
{
printf("b[%d]=",i);
scanf("%d",&b[i]);
}
84
Programski jazik C PISI
printf("\n",k);
return 0;
}
85
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Razlikata na nizite e: 5 4 6
86
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi koja
mo`e da ima najmnogu
a[100]
100 elementi
broj na elementi vo
n
prvata niza
vrednost za
k
pomestuvawe
#include<stdio.h>
int main()
{
int a[100],i,k,n,j,pom;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("Za kolku mesta da se pomesti nizata na desno: ");
scanf("%d",&k);
for(j=0;j<k;j++)
{
pom=a[n-1];
for(i=n-1;i>0;i--)
{
a[i]=a[i-1];
87
Programski jazik C PISI
}
a[0]=pom;
}
printf("Novodobienata niza e: ");
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Kolku elementi da ima nizata? 5
Vnesete ja nizata.
a[0]=4 a[1]=7 a[2]=5 a[3]=9 a[4]=8
Za kolku mesta da se pomesti nizata na desno: 3
Programata pe~ati:
Novodobienata niza e: 5 9 8 4 7
88
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi koja
mo`e da ima najmnogu
a[100]
100 elementi
broj na elementi vo
n
prvata niza
dol`ina na
dolz
i,j broja~i vo nizata podnizata
pomo{na promenliva vo
pom koja se pomni dol`inata
na podnizata
poz1 po~etok na podnizata
#include<stdio.h>
int main()
{
int i,j,n,a[100],dolz,pom,poz1;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata:\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
dolz=0;
for(i=0;i<n;i++)
{
pom=1;
j=i;
while(a[j]<a[j+1])
{
pom++;
j++;
89
Programski jazik C PISI
}
if(pom>dolz)
{
poz1=i;
dolz=pom;
}
}
printf("Najgolemata rastecka podniza ima dolzina %d i taa e:
",dolz);
for(i=poz1;i<=poz1+dolz-1;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Kolku elementi da ima nizata? 5
Vnesete ja nizata: a[0]=5 a[1]=4 a[2]=1 a[3]=2 a[4]=3
Programata pe~ati:
Najgolemata raste~ka podniza ima dol`ina 3 i taa e: 1 2 3
90
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
broj na elementi vo niza od celi broevi
n
nizata koja mo`e da ima
a[100]
najmnogu 100
i broja~ vo intervalot elementi
#include<stdio.h>
int main()
{
int a[100],i,n;
printf("Vnesete n=");
scanf("%d",&n);
a[1]=1;
a[2]=1;
for(i=1;i<n-1;i++)
{
a[i+1]=a[i]+a[i-1];
}
printf("fibonacievata niza e: ");
for(i=1;i<n;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Vnesete n=8
Programata pe~ati:
Fibona~ievata niza e: 1 1 2 3 5 8 13
91
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
koja mo`e da ima
a[100]
najmnogu 100 elementi
broj na elementi vo
n
vleznata niza niza od celi broevi
koja mo`e da ima
broj na elementi {to b[100] najmnogu 100
k
treba da se pronajdat elementi
#include<stdio.h>
int main()
{
int a[100],b[100],pom;
int i,k,n,j;
printf("Kolku elementi da ima nizata? =");
scanf("%d",&n);
printf("Kolku najmali da se najdat? =");
scanf("%d",&k);
if(k>n)
return 0;
printf("Vnesete ja nizata.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
b[i]=a[i];
for(i=0;i<n;i++)
92
Programski jazik C PISI
for(j=0;j<n-i-1;j++)
if(b[j]>b[j+1])
{
pom=b[j];
b[j]=b[j+1];
b[j+1]=pom;
}
printf("%d-te najmali elementi se: ",k);
for(i=0;i<k;i++)
printf("%d ",b[i]);
printf("\n");
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
93
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
koja mo`e da ima
a[100]
najmnogu 100
elementi
broj na elementi vo broj na pojavuvawe na
n
nizata br najgolemiot element vo
nizata
i broja~ vo nizata
najgolem element vo
max
nizata
#include<stdio.h>
int main()
{
int a[100],br=0,max,i,n;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata:\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
max=a[0];
for(i=1;i<n;i++)
if(a[i]>max)
max=a[i];
for(i=0;i<n;i++)
if(a[i]==max)
br++;
printf("Najgolemiot broj se javuva %d pati.\n",br);
return 0;
}
94
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Najgolemiot broj se javuva 2 pati.
95
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
koja mo`e da ima
a[100]
najmnogu 100
elementi
broj na elementi vo
n
nizata
#include<stdio.h>
int main()
{
int a[100],i,j,n;
printf("Vensete n=");
scanf("%d",&n);
printf("Vnesete gi broevite: ");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("Kombinaciite bez povtoruvanje se :\n");
for(i=0;i<n;i++)
{
printf("\n");
for(j=i;j<n;j++)
if(a[i]!=a[j])
printf("%d%d ",a[i],a[j]);
}
printf("\n");
printf("\n");
printf("Kombinaciite so povtoruvanje se :\n");
for(i=0;i<n;i++)
{
printf("\n");
for(j=i;j<n;j++)
printf("%d%d ",a[i],a[j]);
96
Programski jazik C PISI
}
printf("\n");
printf("\n");
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Vnesete n=5
Vnesete gi broevite: 2 5 4 9 8
Programata pe~ati:
25 24 29 28
54 59 58
49 48
98
Kombinaciite so povtoruvawe se :
22 25 24 29 28
55 54 59 58
44 49 48
99 98
88
97
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
koja mo`e da ima
a[100]
najmnogu 100
elementi
broj na elementi vo
n
nizata
#include<stdio.h>
int main()
{
int a[100],i,j,n;
printf("Vensete n=");
scanf("%d",&n);
printf("Vnesete gi broevite: ");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("Varijaciite bez povtoruvanje se :\n");
for(i=0;i<n;i++)
{
printf("\n");
for(j=0;j<n;j++)
if(a[i]!=a[j])
printf("%d%d ",a[i],a[j]);
}
printf("\n");
printf("\n");
printf("Varijaciite so povtoruvanje se :\n");
for(i=0;i<n;i++)
{
printf("\n");
for(j=0;j<n;j++)
printf("%d%d ",a[i],a[j]);
98
Programski jazik C PISI
}
printf("\n");
printf("\n");
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Vnesete n=5
Vnesete gi broevite: 5 9 4 8 3
Programata pe~ati:
59 54 58 53
95 94 98 93
45 49 48 43
85 89 84 83
35 39 34 38
Varijaciite so povtoruvawe se :
55 59 54 58 53
95 99 94 98 93
45 49 44 48 43
85 89 84 88 83
35 39 34 38 33
99
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
koja mo`e da ima
a[100]
najmnogu 100
elementi
n broj na kandidati
broj na kandidati koi
br
i broja~ vo nizata polo`ile
#include<stdio.h>
int main()
{
int a[100],i,br=0,min,n,vk=0;;
printf("Kolku kandidati ucestvuvale? ");
scanf("%d",&n);
printf("Vnesete gi bodovite za sekoj kandidat.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("Kolku e minimumot na poenite: ");
scanf("%d",&min);
for(i=0;i<n;i++)
{
if(a[i]>=min)
100
Programski jazik C PISI
{
printf("Polozil %d-tiot ucenik,\n",i+1);
br++;
vk+=a[i];
}
}
printf("Sredniot uspeh na ucenicite sto polozile na broj %d, e
%.1f\n",br,float(vk)/float(br));
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Polo`il 1-tiot u~enik,
Polo`il 3-tiot u~enik,
Polo`il 6-tiot u~enik,
Polo`il 7-tiot u~enik,
Sredniot uspeh na u~enicite {to polo`ile na broj 4, e 19.3
poeni.
101
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
koja mo`e da ima
a[100]
najmnogu 100
elementi
broj na elementi vo
n
nizata
i broja~ vo nizata
#include<stdio.h>
int main()
{
int a[100],i ,n;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
a[i]*=(-1);
printf("Novata niza e: ");
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
102
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Novata niza e: -5 2 -3 4 -6
103
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
a[100] koja mo`e da ima
najgolema pozicija
najmnogu 100 elementi
maxPoz na koja se javuva
broj na elementi vo elementot x
n
nizata
#include<stdio.h>
int main()
{
int a[100],i,n,x,maxPoz,minPoz;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata:\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("Koj element se bara:");
scanf("%d",&x);
maxPoz=-1;
minPoz=-1;
for(i=0;i<n;i++)
{
if(a[i]==x)
maxPoz=i;
}
i=0;
while(minPoz==-1 && i<n)
{
104
Programski jazik C PISI
if(a[i]==x)
minPoz=i;
i++;
}
if(minPoz!=-1 || maxPoz!=-1)
printf("Elementot se pojavuva na minimalna pozicija %d i
na maksimalna pozicija %d.\n",minPoz+1,maxPoz+1);
else
printf("Elementot ne se pojavuva.\n");
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Elementot se pojavuva na minimalna pozicija 1 i na
maksimalna pozicija 7.
105
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
broj na elementi vo
n
nizata
#include<stdio.h>
int main()
{
int a[100],n,i,s=0,ps=0;
printf("Vnesete n=");
scanf("%d",&n);
for(i=0;i<n;i++)
{
ps=ps+i;
s=s+ps;
a[i]=ps;
}
printf("%d-tiot element vo nizata e: %d\n",n,a[n-1]);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Vnesete n=26
Programata pe~ati:
26-tiot element vo nizata e: 325
106
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
a[100] koja mo`e da ima
najmnogu 100 elementi
broj na elementi vo
n razlika pome|u dva
nizata
raz sosedni elementi
vo nizata
i broja~ vo nizata
pomo{na promenliva
pom vo koja se pomni
razlikata
#include<stdio.h>
#include<math.h>
int main()
{
int i,n;
float a[100],raz,pom;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%f",&a[i]);
}
raz=fabs(a[1]-a[0]);
for(i=2;i<n;i++)
{
pom=fabs(a[i]-a[i-1]);
if(pom>raz)
raz=pom;
}
printf("Najgolemata razlika na dva sosedni elementi vo nizata e
%.2f\n",raz);
107
Programski jazik C PISI
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Najgolemata razlika na dva sosedni elementi vo nizata e 60.00
108
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
n proizvolen broj niza od celi broevi
koja mo`e da ima
a[100]
i broja~ najmnogu 100
elementi
j deliteli na brojot n
broj na deliteli na
br
vrednost na elementot brojot n
x
koja se bara
#include<stdio.h>
int main()
{
int n,br=0,j=2,a[100],i=0;
printf("Vnesete priroden broj:");
scanf("%d",&n);
while(j<=n/2)
{
if(n%j==0)
{
a[i]=j;
br++;
i++;
}
j++;
}
printf("Najmal delitel e %d, a vkupno gi ima %d.\n",a[0],br);
return 0;
}
109
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Najmal delitel e 2, a vkupno gi ima 8.
110
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
a[100] koja mo`e da ima
najmnogu 100 elementi niza od celi broevi
broj na elementi vo koja mo`e da ima
n b[100]
nizata najmnogu 100
elementi
i,j broja~i vo nizata
#include<stdio.h>
int main()
{
int a[100],b[100],i,j,n;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
j=0;
for(i=0;i<n;i++)
{
if(a[i]%2!=0)
{
b[j]=a[i];
j++;
}
}
printf("Novata niza e: ");
for(i=0;i<j;i++)
printf("%d ",b[i]);
printf("\n");
return 0;
}
111
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Novata niza e: 15 225 5 97
112
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi koja
a[100] mo`e da ima najmnogu
100 elementi
broj na elementi vo
n
nizata
pomo{na promenliva vo
p koja se ~uvaat
elementite za smena
#include<stdio.h>
int main()
{
int a[100],i,j,n,p;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
for(j=0;j<n-i-1;j++)
if(a[j]>=a[j+1])
{
p=a[j];
a[j]=a[j+1];
a[j+1]=p;
}
printf("Novata niza e:");
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
113
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Novata niza e: 2 6 15 15 46 89
114
Programski jazik C PISI
i broja~i vo nizite
#include<stdio.h>
int main()
{
int a[100],b[100],c[100],i,n;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja prvata niza.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("Vnesete ja vtorata niza.\n");
for(i=0;i<n;i++)
{
printf("b[%d]=",i);
scanf("%d",&b[i]);
}
printf("Rezultantnata niza e:\n");
for(i=0;i<n;i++)
{
c[i]=a[i]+b[i];
printf("c[%d]=%d \n",i,c[i]);
}
return 0;
}
115
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Kolku elementi da ima nizata? 5
Vnesete ja prvata niza.
a[0]=15 a[1]=20 a[2]=5 a[3]=8 a[4]=64
Vnesete ja vtorata niza.
b[0]=70 b[1]=23 b[2]=58 b[3]=14 b[4]=3
Programata pe~ati:
Rezultantnata niza e:
c[0]=85 c[1]=43 c[2]=63 c[3]=22 c[4]=67
116
Programski jazik C PISI
i broja~i vo nizite
#include<stdio.h>
int main()
{
int a[100],b[100],c[100],i,n;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja prvata niza.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("Vnesete ja vtorata niza.\n");
for(i=0;i<n;i++)
{
printf("b[%d]=",i);
scanf("%d",&b[i]);
}
printf("Rezultantnata niza e:\n");
for(i=0;i<n;i++)
{
c[i]=a[i]*b[i];
printf("c[%d]=%d \n",i,c[i]);
}
return 0;
}
117
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Kolku elementi da ima nizata? 5
Vnesete ja prvata niza.
a[0]=5 a[1]=9 a[2]=12 a[3]=24 a[4]=10
Vnesete ja vtorata niza.
b[0]=23 b[1]=48 b[2]=5 b[3]=5 b[4]=14
Programata pe~ati:
Rezultantnata niza e:
c[0]=115 c[1]=432 c[2]=60 c[3]=120 c[4]=140
118
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
red na prostiot na
m
broj
prima vrednost 1 ako
prost brojot e prost ili 0 niza od celi broevi
ako ne e prosr broj koja mo`e da ima
b[100]
najmnogu 100
i,k broja~i elementi
j deliteli na brojot
#include<stdio.h>
int main()
{
int b[100],m,i,j,k=0,prost;
printf("Koj po red prost priroden broj se bara? ");
scanf("%d",&m);
for(i=2;i<700;i++)
{
prost=1;
j=2;
while(prost && j<=(i/2))
{
if(i%j==0)
prost=0;
j++;
}
if (prost)
{
b[k]=i;
k++;
}
}
printf("Brojot e: %d\n",b[m-1]);
return 0;
}
119
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Brojot e: 47
120
Programski jazik C PISI
i broja~ vo nizata
#include<stdio.h>
#include<math.h>
int main()
{
int a[100],i,n;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
if(a[i]>0)
printf("%d, a korenot iznesuva: %.2f.\n",a[i],
sqrt(a[i]));
return 0;
}
121
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
12, a korenot iznesuva: 3.46.
225, a korenot iznesuva: 15.00.
69, a korenot iznesuva: 8.31.
122
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
koja mo`e da ima
a[100]
najmnogu 100
elementi
broj na elementi vo
n
nizata
po~etok na podnizata
x
za podreduvawe
kraj na podnizata za
y
podreduvawe
pomo{na promenliva
vo koja se pomnat
pom
elementite od
nizata
#include<stdio.h>
int main()
{
int a[100],i,j,n,x,y,pom;
printf("Kolku elementi da ima nizata:");
scanf("%d",&n);
printf("Vnesete ja nizata: \n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("Vnesete pocetok i kraj na podnizata sto treba da se
podredi:");
scanf("%d %d",&x,&y);
for(i=x;i<y;i++)
for(j=i+1;j<=y;j++)
123
Programski jazik C PISI
if(a[j]<a[i])
{
pom=a[j];
a[j]=a[i];
a[i]=pom;
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
5 1 4 8 10 2
124
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
koja mo`e da ima
a[100]
najmnogu 100
elementi
broj na elementi vo
n
nizata
i broja~i vo nizata
#include<stdio.h>
int main()
{
int a[100],i,n;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
printf("Brojot %d ima ostatok pri delenje so 3 ->
%d.\n",a[i],a[i]%3);
return 0;
}
125
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Brojot 12 ima ostatok pri delewe so 3 -> 0.
Brojot 14 ima ostatok pri delewe so 3 -> 2.
Brojot 20 ima ostatok pri delewe so 3 -> 2.
Brojot 22 ima ostatok pri delewe so 3 -> 1.
Brojot 25 ima ostatok pri delewe so 3 -> 1.
126
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
koja mo`e da ima
a[100]
najmnogu 100
elementi
broj na elementi vo
n
nizata
i broja~ vo nizata
broj na elementi vo
j
novata niza
#include<stdio.h>
int main()
{
int a[100],n,i,j;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
j=0;
printf("Vnesete ja nizata.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
if(a[i]%2==0)
{
a[j]=a[i];
j++;
}
}
printf("Novata niza e: ");
for(i=0;i<j;i++)
127
Programski jazik C PISI
printf("%d ",a[i]);
printf("\n");
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Novata niza e: 50 12 4 22
128
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od 3 realni
a[3]
broevi
pomo{na promenliva
vo koja se ~uvaat
pom
elementite od
nizata a
i,j broja~i
#include<stdio.h>
int main()
{
float a[3],pom;
int i,j;
printf("Vnesete gi trite broja:");
for(i=0;i<3;i++)
scanf("%f",&a[i]);
for(i=0;i<3;i++)
for(j=0;j<3-i-1;j++)
if(a[j]>a[j+1])
{
pom=a[j];
a[j]=a[j+1];
a[j+1]=pom;
}
printf("Podredeni se: ");
for(i=0;i<3;i++)
printf("%.1f ",a[i]);
printf("\n");
return 0;
}
129
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Podredeni se: 39.0 45.0 120.0
130
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od realni broevi
a[100] koja mo`e da ima
najmnogu 100 elementi
broj na elementi vo
n
nizata niza od realni
broevi koja mo`e da
broj na elementi vo b[100]
j ima najmnogu 100
izleznata niza
elementi
i broja~ vo nizite
aritmeti~ka sredina
as
na elementite od niza
#include<stdio.h>
int main()
{
int i,j=0,n;
float as=0.0,a[100],b[100];
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%f",&a[i]);
}
for(i=0;i<n;i++)
as+=a[i];
as=as/float(n);
for(i=0;i<n;i++)
{
131
Programski jazik C PISI
if(a[i]>as)
{
b[j]=a[i];
j++;
}
}
printf("Novodobienata niza e: ");
for(i=0;i<j;i++)
printf("%.2f ",b[i]);
printf("\n");
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Kolku elementi da ima nizata? 5
Vnesete ja nizata.
a[0]=12
a[1]=60
a[2]=-18
a[3]=34
a[4]=27
Programata pe~ati:
Novodobienata niza e: 60.00 34.00 27.00
132
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
nizi od realni broevi
a[100]
koi mo`e da imaat
b[100]
najmnogu 100 elementi
broj na elementi vo
n
prvata niza
broj na elementi vo
m
vtorata niza
i broja~ vo nizite
#include<stdio.h>
int main()
{
int a[100],b[100],i,n,m;
printf("Kolku elementi da ima prvata niza? ");
scanf("%d",&n);
printf("Vnesete ja prvata niza:\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("Kolku elementi da ima vtorata niza? ");
scanf("%d",&m);
printf("Vnesete ja vtorata niza:\n");
for(i=0;i<m;i++)
{
printf("b[%d]=",i);
scanf("%d",&b[i]);
}
for(i=0;i<n;i++)
if(a[i]==b[0])
133
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
134
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
a[100] koja mo`e da ima
najmnogu 100 elementi broj na promeni na
broj na elementi vo znacite pome|u dva
n br
nizata sosedni elementi vo
nizata
i broja~ vo nizata
#include<stdio.h>
int main()
{
int a[100],i,br=0,n;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(i=1;i<n;i++)
if(a[i]*a[i-1]<0)
br++;
135
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Promeni na znacite vo nizata se na broj: 3
136
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
a[100] koja mo`e da ima
najmnogu 100 elementi
broj na elementi vo broj na negativni
n br
nizata elementi vo nizata
i broja~i vo nizite
#include<stdio.h>
int main()
{
int a[100],i,n,br=0;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata:\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
if(a[i]<0)
{
br++;
printf("%d ",a[i]);
}
printf("\nNivniot broj e %d.\n",br);
return 0;
}
137
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
-64 -89 -1
Nivniot broj e 3.
138
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
koja mo`e da ima
a[100]
najmnogu 100
elementi
broj na elementi vo
n
nizata
i broja~ vo nizata
element so najmala
min
vrednost vo nizata
element so najgolema
max
vrednost vo nizata
pozicija na elemenot
iMin so najmala vrednost
vo nizata
pozicija na
elementot so
iMax
najgolema vrednost
vo nizata
pomo{na promenliva
pom vo koja se pomni
element vo nizata
#include<stdio.h>
int main()
{
int a[100],i,iMin,iMax,n,min,max,pom;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata:\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
139
Programski jazik C PISI
min=a[0];
max=a[0];
iMin=0;
iMax=0;
for(i=0;i<n;i++)
{
if(a[i]<min)
{
min=a[i];
iMin=i;
}
if(a[i]>max)
{
max=a[i];
iMax=i;
}
}
pom=a[iMin];
a[iMin]=a[iMax];
a[iMax]=pom;
printf("Novata niza e: ");
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Kolku elementi da ima nizata? 8
Vnesete ja nizata:
a[0]=48
a[1]=-10
a[2]=58
a[3]=79
a[4]=483
a[5]=42
a[6]=15
a[7]=-23
Programata pe~ati:
Novata niza e: 48 -10 58 79 -23 42 15 483
140
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
koja mo`e da ima
a[100] s suma (zbir)
najmnogu 100
elementi
broj na elementi vo
n
nizata p proizvod
i broja~ vo nizata
#include<stdio.h>
int main()
{
int a[100],s=0,p=1,i,n;
printf("Kolku elementi da ima poleto? = ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
s+=a[i];
p*=a[i];
}
printf("Zbirot e %d, a proizvodot %d.\n",s,p);
return 0;
}
141
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
142
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
koja mo`e da ima
a[100]
najmnogu 100
elementi s suma (zbir)
broj na elementi vo
n
nizata
i broja~ vo nizata
#include<stdio.h>
int main()
{
int a[100],i,n,s=0;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata:\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
s+=a[i]*a[i];
printf("Sumata kvadratite na elementite od nizata e %d.\n",s);
return 0;
}
143
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
144
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
nizi od celi broevi
a[100] koi mo`e da imaat
b[100] najmnogu 100
elementi
broj na elementi vo s suma (zbir)
n
nizite
i broja~ vo nizata
p proizvod
#include<stdio.h>
int main()
{
int a[100],b[100],n,i,s=0,p;
printf("Kolku elementi da imaat nizite? ");
scanf("%d",&n);
printf("Vnesete ja prvata niza.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("Vnesete ja vtorata niza.\n");
for(i=0;i<n;i++)
{
printf("b[%d]=",i);
scanf("%d",&b[i]);
}
for(i=0;i<n;i++)
{
p=a[i]*b[i];
s+=p;
}
printf("Rezultatot e: %d.\n",s);
return 0;
}
145
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Kolku elementi da imaat nizite? 6
Vnesete ja prvata niza.
a[0]=10 a[1]=8 a[2]=19 a[3]=40 a[4]=35 a[5]=49
Vnesete ja vtorata niza.
b[0]=15 b[1]=0 b[2]=-10 b[3]=5 b[4]=-9 b[5]=44
Programata pe~ati:
Rezultatot e: 2001.
146
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
koja mo`e da ima
a[100]
najmnogu 100
elementi
broj na elementi vo
n
nizata
i,j broja~i vo nizata
k kraj na intervalot
#include<stdio.h>
int main()
{
int a[100],i,j,n,k;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
k=n-1;
for(j=1;j<=k;j++)
{
for(i=1;i<n;i++)
{
a[i-1]=a[i]+a[i-1];
printf("%d ",a[i-1]);
}
n--;
printf("\n");
}
return 0;
}
147
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
77 104 64
181 168
349
148
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi
broevi koja mo`e
a[50]
da ima najmnogu 50
elementi
broj na elementi vo F vrednost na funkcijata
n
nizata
j broja~
suma zbir
#include<stdio.h>
#include<math.h>
int main()
{
int n,i,a[50];
float suma=0,F;
do
{
printf("Vnesete go brojot na clenovi na nizata:\t");
scanf("%d",&n);
}
while ((n<0) || (n>50));
for (i=1;i<=n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for (i=1;i<=n;i++)
suma+=a[i]*a[i];
F=sqrt(suma/float (n));
printf("\n\nVrednosta na funkcijata iznesuva %8.3f.\n\n",F);
system("pause");
return 0;
}
149
Programski jazik C PISI
_______________________________________________________
Test primer
VLEZ:
150
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
koja mo`e da ima
a[100]
najmnogu 100
elementi
broj na elementi vo
n
nizata
j broja~ vo nizata min najmala vrednost
#include<stdio.h>
int main()
{
int i,n,v,poz,brojac,brclen;
int razlika,suma,min,indeks,a[100];
do
{
printf("Vnesete go brojot na clenovi na nizata (n<100):\t");
scanf("%d",&n);
}
while ((n<0) && (n>100));
printf("\n\n");
for (i=1;i<=n;i++)
{
151
Programski jazik C PISI
do
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
while (a[i]<0);
}
do
{
printf("\n\nVnesete ja vrednosta na brojot v(v>0):\t");
scanf("%d",&v);
}
while (v<0);
min=v;
for (i=1;i<=n;i++)
{
poz=i;
suma=0;
brojac=0;
while ((suma<=v) && (poz+brojac<=n))
{
suma+=a[poz+brojac];
brojac++;
}
razlika=v-suma+a[poz+brojac-1];
if (min>=razlika)
{
min=razlika;
indeks=poz;
brclen=brojac-1;
}
}
printf("\n\nDo vrednosta %d najbliska e sumata %d sostavena od
podnizata: ",v,v-min);
for (i=indeks;i<=indeks+brclen-1;i++)
printf("%d, ",a[i]);
printf("\n\n");
system("pause");
return 0;
}
152
Programski jazik C PISI
_______________________________________________________
Test primer
VLEZ:
153
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
nizi od celi broevi
vo koi se ~uvaat
xk[50] koordinatite na
yk[50] to~kite koi mo`e da
imaat najmnogu 50
elementi
niza od realni pozicija na to~kata {to
broevi koja mo`e da poz
go ispolnuva uslovot
ima najmnogu 50
d[50] elementi i vo nea se
~uvaat rastojanijata
na soodvetnata to~ka
do ostanatite to~ki
max najgolemo rastojanie
#include<stdio.h>
#include<math.h>
int main()
{
int xk[50],yk[50],i,n,j,poz;
float d[50],max;
do
{
printf("Vneste kolku tocki da ima vo ramninata (n<50):\t");
scanf("%d",&n);
}
while ((n<0) || (n>50));
for (i=1;i<=n;i++)
{
printf("Vnesete ja x koordinatata na %d-ta tocka:\t",i);
scanf("%d",&xk[i]);
printf("Vnesete ja y koordinatata na %d-ta tocka:\t",i);
scanf("%d",&yk[i]);
}
for (i=1;i<=n;i++)
154
Programski jazik C PISI
{
d[i]=0;
for (j=1;j<=n;j++)
d[i]+=sqrt((xk[i]-xk[j])*(xk[i]-xk[j])+(yk[i]-yk[j])*(yk[i]-
yk[j]));
}
max=d[1];
poz=1;
for (i=2;i<=n;i++)
{
if (max<d[i])
{
max=d[i];
poz=i;
}
}
printf("\n\nOd site tocki vo ramninata najmalo rastojanie do
ostanatite tocki ima");
printf("\ntockata so x koordinata %d i y koordinata %d i toa iznesuva
%6.2f.\n\n\n",xk[poz],yk[poz],max);
system("pause");
return 0;
}
155
Programski jazik C PISI
_______________________________________________________
Test primer
VLEZ:
156
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od realni
broevi koja mo`e
a[100]
da ima najmnogu 100 niza od realni broevi
elementi b[100] koja mo`e da ima
broj na elementi vo najmnogu 100 elementi
n
nizata
i broja~ vo nizata
broj na ~lenovi vo
brojac
izleznata niza aritmeti~ka sredina na
prosek
zbir na elementite elementite vo nizata
zbir
od nizata
#include<stdio.h>
int main()
{
int i,n,brojac=0;
float a[100],b[100],zbir=0,prosek;
do
{
printf("Vnesete kolku clenovi da ima vo nizata(n<100)\t");
scanf("%d",&n);
}
while ((n<0) || (n>100));
printf("\n");
for (i=1;i<=n;i++)
{
printf("a[%d]=",i);
scanf("%f",&a[i]);
}
for (i=1;i<=n;i++)
157
Programski jazik C PISI
zbir+=a[i];
prosek=zbir/float(n);
for (i=1;i<=n;i++)
{
if (a[i]>prosek)
{
brojac++;
b[brojac]=a[i];
}
}
printf("\n\nProsecnata vrednost na elementite vo nizata iznesuva
%4.2f",prosek);
printf("\n\nNovodobienata niza glasi: ");
for (i=1;i<=brojac;i++)
printf("%4.2f ",b[i]);
printf("\n\n\n");
system("pause");
return 0;
}
_______________________________________________________
Test primer
VLEZ:
a[1]=7
a[2]=3
a[3]=-2
a[4]=0
a[5]=6
a[6]=10
a[7]=-5
a[8]=4
158
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od realni
broevi koja mo`e
a[100] najgolema razlika me|u
da ima najmnogu 100 max
elementi dva sosedni elementi
broj na elementi vo
n
nizata
i broja~ vo nizata pozicija na prviot
razlika me|u dva poz element koj go
razlika zadovoluva uslovot
sosedni elementi
#include<stdio.h>
int main()
{
int i,n,poz;
float razlika,max,a[100];
do
{
printf("Vnesete go brojot na clenovi na nizata (n<100):\t");
scanf("%d",&n);
}
while ((n<0) && (n>100));
printf("\n\n");
for (i=1;i<=n;i++)
{
printf("a[%d]=",i);
scanf("%f",&a[i]);
}
max=a[2]-a[1];
for (i=2;i<n;i++)
{
razlika=a[i+1]-a[i];
if (max<=razlika)
{
max=razlika;
poz=i;
159
Programski jazik C PISI
}
}
printf("\n\nMaksimalna razlika koja iznesuva %4.2f e megu clenovite
a[%d] i a[%d]",max,poz,poz+1);
printf("\n\n");
system("pause");
return 0;
}
_______________________________________________________
Test primer
VLEZ:
a[1]=5
a[2]=-3
a[3]=0
a[4]=2
a[5]=-8
a[6]=7
a[7]=10
160
Programski jazik C PISI
4. Matrici
1. Da se napi{e programa vo programskiot jazik C so koja }e se
soberat dve matrici. Matricite se vnesuvaat od tastatura.
(Zbir na dve matrici pretstavuva matrica kaj koja sekoj
element e zbir od soodvetnite elementi na dvete matrici t.e
c[i][j]=a[i][j]+b[i][j]).
Re{enie:
Vlezni promenlivi Izlezni promenlivi
matrici od
realni broevi
a[100][100] koi mo`e da
b[100][100] imaat najmnogu matrica od
100 redovi i 100 realni broevi
koloni koja mo`e da
c[100][100]
broj na redovi vo ima najmnogu
m 100 redovi i
matricata
broj na koloni vo 100 koloni
n
matricata
broja~i vo
i,j
matricite
#include<stdio.h>
int main()
{
float a[100][100],b[100][100],c[100][100];
int i,j,n,m;
printf("Vnesete kolku redovi da ima prvata matrica=");
scanf("%d",&m);
printf("Vnesete kolku koloni da ima prvata matrica=");
scanf("%d",&n);
printf("Vnesete ja prvata matrica\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%f",&a[i][j]);
}
printf("Vnesete ja vtorata matrica.\n");
for(i=0;i<m;i++)
161
Programski jazik C PISI
for(j=0;j<n;j++)
{
printf("b[%d][%d]=",i,j);
scanf("%f",&b[i][j]);
}
for(i=0;i<m;i++)
for(j=0;j<n;j++)
c[i][j]=a[i][j]+b[i][j];
printf("Rezultantnata matrica e:\n");
for(i=0;i<m;i++)
{
printf("\n");
for(j=0;j<n;j++)
printf("c[%d][%d]=%.2f ",i,j,c[i][j]);
}
printf("\n");
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Vnesete kolku redovi da ima prvata matrica=3
Vnesete kolku koloni da ima prvata matrica=2
Vnesete ja prvata matrica.
a[0][0]=12
a[0][1]=15
a[1][0]=60
a[1][1]=33
a[2][0]=48
a[2][1]=-10
Vnesete ja vtorata matrica.
b[0][0]=22
b[0][1]=-15
b[1][0]=49
b[1][1]=64
b[2][0]=-28
b[2][1]=30
Programata pe~ati:
Rezultantnata matrica e:
162
Programski jazik C PISI
c[0][0]=34.00 c[0][1]=0.00
c[1][0]=109.00 c[1][1]=97.
c[2][0]=20.00 c[2][1]=20.00
163
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
matrica od realni
broevi koja mo`e da
a[100][100]
ima najmnogu 100
redovi i 100 koloni s suma (zbir)
broj na redovi i
n
koloni vo matricata
i,j broja~i vo matricata
#include<stdio.h>
int main()
{
int i,j,n;
float a[100][100],s=0;
printf("Vnesete borj na redovi=koloni=");
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%f",&a[i][j]);
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(i==j)
s+=a[i][j];
if(i+j==n-1)
s+=a[i][j];
}
printf("Zbirot na elementite na glavnata i sporednata dojagonala
=%2.f\n",s);
return 0;
}
164
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
a[0][0]=15
a[0][1]=-10
a[0][2]=20
a[1][0]=-33
a[1][1]=48
a[1][2]=28
a[2][0]=-18
a[2][1]=60
a[2][2]=-50
Programata pe~ati:
165
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
matrica od realni
broevi koja mo`e da ima
a[100][100]
najmnogu 100 redovi i
100 koloni
broj na redovi vo
n
matricata
broj na koloni vo
m
matricata
i,j broja~i vo matricite
element so najmala
min
vrednost
element so najgolema
max
vrednost
pomo{na promenliva
pom koja se upotrebuva pri
smena
redot vo koj se
iMax nao|aelementot so
najgolema vrednost
kolona vo koja se nao|a
jMax elementot so najgolema
vrednost
redot vo koj se nao|a
iMin elementot so najmala
vrednost
kolona vo koja se nao|a
jMin elementot so najmala
vrednost
#include<stdio.h>
int main()
{
float a[100][100];
int i,j,n,m,iMax,jMax,iMin,jMin;
float min,max,pom;
printf("Vnesete kolku redovi da ima matricata=");
166
Programski jazik C PISI
scanf("%d",&n);
printf("Vnesete kolku koloni da ima matricata=");
scanf("%d",&m);
printf("Vnesete ja matricata.\n");
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%f",&a[i][j]);
}
min=a[0][0];
iMin=0;
jMin=0;
max=a[0][0];
iMax=0;
jMax=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
if(a[i][j]>max)
{
max=a[i][j];
iMax=i;
jMax=j;
}
if(a[i][j]<min)
{
min=a[i][j];
iMin=i;
jMin=j;
}
}
pom=a[iMax][jMax];
a[iMax][jMax]=a[iMin][jMin];
a[iMin][jMin]=pom;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
printf("a[%d][%d]=%.2f\n",i,j,a[i][j]);
return 0;
}
167
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
168
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
matrici od
realni broevi
a[100][100] koi mo`e da
b[100][100] imaat najmnogu
100 redovi i 100 matrica od
koloni realni broevi
broj na redovi vo koja mo`e da ima
n c[100][100]
prvata matrica najmnogu 100
broj na koloni vo redovi i 100
m koloni
vtorata matrica
broj na koloni vo
p
vtorata matrica
broja~i vo
i,j,k
matricite
#include<stdio.h>
int main()
{
float a[100][100],b[100][100],c[100][100];
int i,j,n,m,k,p;
printf("Vnesete kolku redovi da ima prvata matrica=");
scanf("%d",&n);
printf("Vnesete kolku koloni da ima prvata matrica(==so redovi na
vtorata matrica)=");
scanf("%d",&m);
printf("Vnesete kolku koloni da ima vtorata matrica=");
scanf("%d",&p);
printf("Vnesete ja prvata matricata.\n");
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%f",&a[i][j]);
169
Programski jazik C PISI
}
printf("Vnesete ja vtorata matricata.\n");
for(i=0;i<m;i++)
for(j=0;j<p;j++)
{
printf("b[%d][%d]=",i,j);
scanf("%f",&b[i][j]);
}
for(i=0;i<n;i++)
for(j=0;j<p;j++)
{
c[i][j]=0;
for(k=0;k<m;k++)
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
170
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Rezultantnata matrica e:
c[0][0]=81.00 c[0][1]=-20.00
c[1][0]=145.00 c[1][1]=-125.00
c[2][0]=147.00 c[2][1]=-30.00
171
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
matrici od celi
a[25][25] broevi koi mo`e
b[25][25] da imaat najmnogu
c[25][25] po 25 redovi i 25
koloni
broj na redovi i
n koloni vo matrica od celi
matricata broevi koja mo`e da
x[25][25]
broja~i vo ima najmnogu po 25
i,j,k redovi i 25 koloni
matricata
prima vrednost 1
ako matricata e
dolnotriagolna i
dtr
0 ako matricata
ne e
dolnotriagolna
#include<stdio.h>
int main()
{
int a[25][25],b[25][25],c[25][25],x[25][25];
int i,n,j,k,dtr=1;
do
{
printf("Vnesete ja dimenzijata na matricite (n<25)\t");
scanf("%d",&n);
}
while ((n<0) && (n>25));
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d",&a[i][j]);
172
Programski jazik C PISI
}
}
printf("\n\n");
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
printf("b[%d][%d]=",i,j);
scanf("%d",&b[i][j]);
}
}
printf("\n\n");
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
printf("c[%d][%d]=",i,j);
scanf("%d",&c[i][j]);
}
}
for (i=1;i<=n;i++)
{
x[i][j]=0;
for (j=1;j<=n;j++)
{
for (k=1;k<=n;k++)
x[i][j]+=a[i][k]*b[k][j];
}
}
printf("\n\n");
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
x[i][j]+=c[i][j];
}
for (i=1;i<=n;i++)
{
for (j=i+1;j<=n;j++)
{
if (a[i][j]!=0)
{
dtr=0;
173
Programski jazik C PISI
break;
}
}
}
printf("\n\nMatricata:\n");
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
printf("%d ",x[i][j]);
}
printf("\n");
}
if (dtr)
printf("\n\n e dolnotriagolna.\n\n");
else
printf("\n\n ne e dolnotriagolna.\n\n");
system("pause");
return 0;
}
_______________________________________________________
Test primer
VLEZ:
a[1][1]=1
a[1][2]=3
a[1][3]=0
a[2][1]=5
a[2][2]=-2
a[2][3]=4
a[3][1]=7
a[3][2]=6
a[3][3]=-3
b[1][1]=5
b[1][2]=-4
b[1][3]=3
b[2][1]=1
174
Programski jazik C PISI
b[2][2]=0
b[2][3]=7
b[3][1]=6
b[3][2]=4
b[3][3]=3
c[1][1]=-5
c[1][2]=4
c[1][3]=1
c[2][1]=2
c[2][2]=-3
c[2][3]=7
c[3][1]=8
c[3][2]=-6
c[3][3]=
Matricata:
3 0 25
49 -7 20
31 -46 63
ne e dolnotriagolna.
175
Programski jazik C PISI
#include<stdio.h>
int main()
{
int a[25][25],proizvod=1,proizvod1,proizvod2,i,n,j;
do
{
printf("Vnesete ja dimenzijata na matricata (n<25)\t");
scanf("%d",&n);
}
while ((n<0) && (n>25));
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d",&a[i][j]);
}
176
Programski jazik C PISI
}
for (i=1;i<=n;i++)
{
proizvod1=1;
proizvod2=1;
for (j=1;j<=n;j++)
{
proizvod1*=a[i][j];
proizvod2*=a[j][i];
}
proizvod*=(proizvod1+proizvod2);
}
printf("\n\n");
printf("\n\nVrednosta na funkcijata iznesuva %d.\n\n", proizvod);
system("pause");
return 0;
}
_______________________________________________________
Test primer
VLEZ:
177
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
matrica od celi
broevi koja mo`e
a[25][25] da ima najmnogu
25 redovi i 25
koloni
broj na redovi i
n koloni vo
matricata
broja~i vo
i,j
matricata
prima vrednost 1
ako matricata e
simetricna
simetr~na i 0 ako
ne e
#include<stdio.h>
int main()
{
int a[25][25],simetricna=1,i,n,j;
do
{
printf("Vnesete ja dimenzijata na matricata (n<25)\t");
scanf("%d",&n);
}
while ((n<0) && (n>25));
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d",&a[i][j]);
}
}
for (i=1;i<=n;i++)
{
178
Programski jazik C PISI
for (j=1;j<i;j++)
{
if (a[i][j]!=a[j][i])
{
simetricna=0;
break;
}
}
}
printf("\n\nMatricata:\n\n");
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
if (simetricna)
printf("\n\n e simetricna.\n\n");
else
printf("\n\n ne e simetricna.\n\n");
system("pause");
return 0;
}
179
Programski jazik C PISI
_______________________________________________________
Test primer
VLEZ:
Vnesete ja dimenzijata na matricata (n<25) 4
a[1][1]=1
a[1][2]=5
a[1][3]=8
a[1][4]=6
a[2][1]=5
a[2][2]=3
a[2][3]=0
a[2][4]=4
a[3][1]=8
a[3][2]=0
a[3][3]=7
a[3][4]=10
a[4][1]=6
a[4][2]=4
a[4][3]=10
a[4][4]=9
Matricata:
1 5 8 6
5 3 0 4
8 0 7 10
6 4 10 9
e simetri~na.
180
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
matrica od celi
broevi koja mo`e
a[25][25]
da ima najmnogu 25
redovi i 25 koloni
broj na redovi i
n koloni vo
matricata
broja~i vo
i,j
matricata
pomo{na promen-
liva vo koja se
pom
pomnat elementite
od matricata
#include<stdio.h>
int main()
{
int a[25][25],i,n,j,pom;
do
{
printf("Vnesete ja dimenzijata na matricata (n<25)\t");
scanf("%d",&n);
}
while ((n<0) && (n>25));
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d",&a[i][j]);
}
}
printf("\n\n Matrica:\n");
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
181
Programski jazik C PISI
printf("%d ",a[i][j]);
printf("\n");
}
printf("\n\n");
for (i=1;i<=n/2;i++)
{
for (j=1;j<=n;j++)
{
pom=a[i][j];
a[i][j]=a[n-i+1][j];
a[n-i+1][j]=pom;
}
}
printf("\n\nogledalno preslikana vo odnos na horizontalata
iznesuva:\n\n");
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
printf("\n\n");
system("pause");
return 0;
}
182
Programski jazik C PISI
_______________________________________________________
Test primer
VLEZ:
a[1][1]=5
a[1][2]=6
a[1][3]=3
a[2][1]=3
a[2][2]=1
a[2][3]=0
a[3][1]=7
a[3][2]=9
a[3][3]=10
Matricata:
5 6 3
3 1 0
7 9 10
7 9 10
3 1 0
5 6 3
183
Programski jazik C PISI
#include<stdio.h>
int main()
{
int i,j,n,pom,a[10][10],b[100],brojac=0;
do
{
printf("Vnesete ja dimenzijata na matricata (n<10);\t");
scanf("%d",&n);
}
while ((n<0) || (n>10));
printf("\n\n");
for (i=1;i<=n;i++)
{
184
Programski jazik C PISI
for (j=1;j<=n;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d",&a[i][j]);
}
}
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
brojac++;
b[brojac]=a[i][j];
}
}
printf("\n\nOrginalnata matrica \n");
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
printf("\n\n\n");
pom=b[brojac];
for (i=brojac;i>=2;i--)
b[i]=b[i-1];
b[1]=pom;
brojac=0;
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
brojac++;
a[i][j]=b[brojac];
}
}
printf("\n\ja dobiva slednata forma:\n");
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
printf("%d ",a[i][j]);
printf("\n");
185
Programski jazik C PISI
}
printf("\n\n\n");
system("pause");
return 0;
}
_______________________________________________________
Test primer
VLEZ:
a[1][1]=72
a[1][2]=53
a[1][3]=69
a[2][1]=94
a[2][2]=13
a[2][3]=7
a[3][1]=67
a[3][2]=23
a[3][3]=45
Orginalnata matrica:
72 53 69
94 13 7
67 23 45
45 72 53
69 94 13
7 67 23
186
Programski jazik C PISI
#include<stdio.h>
int main()
{
int i,j,n,sgl=0,ssp=0,spg=0;
int sng=0,sps=0,sns=0;
int a[25][25];
do
{
printf("Vnesete go redot na matricata\t");
scanf("%d",&n);
}
while ((n<0) || (n>25));
printf("\n\n");
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
187
Programski jazik C PISI
printf("a[%d][%d]=",i,j);
scanf("%d",&a[i][j]);
}
}
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
if (j==i)
sgl+=a[i][j];
else if(j<i)
spgl+=a[i][j];
else
sng+=a[i][j];
}
}
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
if (j==n-i+1)
ssp+=a[i][j];
else if (j<n-i+1)
sns+=a[i][j];
else
sps+=a[i][j];
}
}
printf("\n\nZbirot na elementite od glavnata dijagonala iznesuva
%d.",sgl);
printf("\nZbirot na elementite pod glavnata dijagonala iznesuva
%d.",spg);
printf("\nZbirot na elementite nad glavnata dijagonala iznesuva
%d.",sng);
printf("\n\nZbirot na elementite od sporednata dijagonala iznesuva
%d.",ssp);
printf("\nZbirot na elementite nad sporednata dijagonala iznesuva
%d.",sns);
printf("\nZbirot na elementite pod sporednata dijagonala iznesuva
%d.",sps);
printf("\n\n\n");
system("pause");
188
Programski jazik C PISI
return 0;
}
_______________________________________________________
Test primer
VLEZ:
a[1][1]=10
a[1][2]=12
a[1][3]=4
a[2][1]=6
a[2][2]=13
a[2][3]=7
a[3][1]=8
a[3][2]=9
a[3][3]=15
189
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
matrica od celi
broevi koja mo`e
element so najgolema
a[25][25] da ima najmnogu max
vrednost
25 redovi in 25
koloni
red vo koj se nao|a
broj na redovi vo
m pozr elementot so najgole-
matricata
ma vrednost
broj na koloni vo kolona vo koja se
n
matricata pozk nao|a elementot so
i,j broja~i najgolema vrednost
#include<stdio.h>
int main()
{
int i,j,n,m,max,pozr,pozk,a[25][25];
do
{
printf("Vnesete go brojot na redovi na matricata (m<25):\t");
scanf("%d",&m);
printf("Vnesete go brojot na koloni na matricata (n<25):\t");
scanf("%d",&n);
}
while ((n<0) || (m<0) || (n>25) || (m>25));
for (i=1;i<=m;i++)
{
for (j=1;j<=n;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d",&a[i][j]);
}
}
max=a[1][1];
pozr=1;
pozk=1;
190
Programski jazik C PISI
for (i=1;i<=m;i++)
{
for (j=1;j<=n;j++)
{
if (max<=a[i][j])
{
max=a[i][j];
pozr=i;
pozk=j;
}
}
}
printf("\n\nMaksimalna vrednost vo matricata ima elementot
a[%d][%d]=%d\n\n",pozr,pozk,max);
system("pause");
return 0;
}
_______________________________________________________
Test primer
VLEZ:
a[1][1]=1
a[1][2]=2
a[1][3]=8
a[2][1]=-5
a[2][2]=6
a[2][3]=7
a[3][1]=4
a[3][2]=-3
a[3][3]=12
a[4][1]=10
a[4][2]=7
a[4][3]=9
191
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
matrica od celi
broevi koja mo`e
a[25][25] da ima najmnogu
25 redovi in 25 element so najgolema
koloni
vrednost od
niza od celi max
najmalite vrednosti
broevi koja mo`e po redovi
b[25]
da ima najmnogu
25 elementi
broj na redovi vo
m
matricata
broj na koloni vo
n
matricata
i,j broja~i pozicija na brojot koj
poz
elementi so se ~uva vo max
min najmala vrednost
po redovi
#include<stdio.h>
int main()
{
int i,j,n,m,min,poz,b[25],a[25][25],max;
do
{
printf("Vnesete go brojot na redovi na matricata (m<25):\t");
scanf("%d",&m);
printf("Vnesete go brojot na koloni na matricata (n<25):\t");
scanf("%d",&n);
}
while ((n<0) || (m<0) || (n>25) || (m>25));
for (i=1;i<=m;i++)
{
for (j=1;j<=n;j++)
{
printf("a[%d][%d]=",i,j);
192
Programski jazik C PISI
scanf("%d",&a[i][j]);
}
printf("\n");
}
for (i=1;i<=m;i++)
{
min=a[i][1];
for (j=1;j<=n;j++)
{
if (min>=a[i][j])
min=a[i][j];
}
b[i]=min;
}
max=b[1];
poz=1;
for (i=2;i<=m;i++)
{
if (max<=b[i])
{
max=b[i];
poz=i;
}
}
printf("\n\nNajgolema vrednost od najmalite vrednosti po redovi vo
matricata\n");
printf("ima elementot od %d-ta redica so vrednost %d\n\n",poz,max);
system("pause");
return 0;
}
193
Programski jazik C PISI
_______________________________________________________
Test primer
VLEZ:
a[1][1]=5
a[1][2]=6
a[2][1]=7
a[2][2]=1
a[3][1]=4
a[3][2]=3
194
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
matrica od celi
broevi koja mo`e
a[25][25] da ima najmnogu
25 redovi in 25
matrica od celi
koloni
broevi koja mo`e da
broj na redovi vo t[25][25]
m ima najmnogu 25
matricata redovi in 25 koloni
broj na koloni vo
n
matricata
broja~i vo
i,j
matricata
#include<stdio.h>
int main()
{
int i,j,n,m,t[25][25],a[25][25];
do
{
printf("Vnesete go brojot na redovi na matricata (m<25):\t");
scanf("%d",&m);
printf("Vnesete go brojot na koloni na matricata (n<25):\t");
scanf("%d",&n);
}
while ((n<0) || (m<0) || (n>25) || (m>25));
for (i=1;i<=m;i++)
{
for (j=1;j<=n;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d",&a[i][j]);
}
printf("\n");
}
for (j=1;j<=m;j++)
{
195
Programski jazik C PISI
for (i=1;i<=n;i++)
t[i][j]=a[j][i];
}
printf("\n\nTransponiranata matrica na matricata:\n");
for (i=1;i<=m;i++)
{
for (j=1;j<=n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
printf("\n\n");
printf("\n\ne slednata:\n");
for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
printf("%d ",t[i][j]);
printf("\n");
}
printf("\n\n");
system("pause");
return 0;
}
196
Programski jazik C PISI
_______________________________________________________
Test primer
VLEZ:
-5 4 2
0 1 6
-7 8 -3
10 8 9
e slednata
-5 0 -7 10
4 1 8 8
2 6 -3 9
197
Programski jazik C PISI
5. Funkcii
1. Da se napi{e programa vo programskiot jazik C so koja }e se
presmeta sumata 11+22+33+...+nn kade {to n se vnesuva od
tastatura.
Re{enie:
#include<stdio.h>
long int stepen(int n,int m)
{
if(m==0)
return 1;
if(m==1)
return 1;
else
return(n*stepen(n,m-1));
}
int main()
{
long int s=0;
int i,n;
printf("Vnesete n: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
s+=stepen(i,i);
printf("Sumata e: %d \n",s);
return 0;
}
_______________________________________________________
Test primer:
Vnesete n: 5
Sumata e: 3413.
198
Programski jazik C PISI
Re{enie:
#include<stdio.h>
int main()
{
int i,s=0,ps=0,n;
printf("Vnesete n=");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
ps=ps+i;
s=s+ps;
}
printf("Sumata e = %d\n",s);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Vnesete n: 10
Sumata e: 220.
199
Programski jazik C PISI
Re{enie:
#include<stdio.h>
long int stepen(int n,int m)
{
if(m==0)
return 1;
if(m==1)
return 1;
else
return(n*stepen(n,m-1));
}
int brcif(int n)
{
int br=0,pom;
pom=n;
while(pom>0)
{
br++;
pom/=10;
}
200
Programski jazik C PISI
return br;
}
int main()
{
int poc,kraj,i,br,s=0,a,pom;
printf("Vnesete pocetok i kraj na intervalot: ");
scanf("%d %d",&poc,&kraj);
for(i=poc;i<=kraj;i++)
{
s=0;
br=brcif(i);
pom=i;
while(pom>0)
{
a=pom%10;
s+=stepen(a,br);
pom/=10;
}
if(s==i)
printf("Takov e brojot %d \n",i);
}
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Takov e brojot 153
Takov e brojot 370
Takov e brojot 371
Takov e brojot 407
201
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
binarniot broj
a
#include<stdio.h>
int dek(long int n)
{
int pom,dek=0,x=1,a;
pom=n;
while(pom>0)
{
a=pom%10;
dek=dek+a*x;
x*=2;
pom/=10;
}
return dek;
}
int main()
{
long int a;
printf("Vnesete eden broj vo binaren broen sistem: ");
scanf("%ld",&a);
printf("Brojot vo dekaden broen sistem e: %ld.\n",dek(a));
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Vnesete eden broj vo binaren broen sistem: 1010
Programata pe~ati:
Brojot 1010 vo dekaden broen sistem e: 10.
202
Programski jazik C PISI
Re{enie:
#include<stdio.h>
int cifri(int n)
{
int br=0;
while(n>0)
{
br++;
n/=10;
}
return br;
}
int main()
{
int i,n,a[100],br=0;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata:\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
203
Programski jazik C PISI
}
for(i=0;i<n;i++)
{
if(cifri(a[i])%2==0)
br++;
}
printf("Broevite so paren broj na cifri se %d.\n",br);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Broevite so paren broj na cifri se 3.
204
Programski jazik C PISI
Re{enie:
#include<stdio.h>
int broj(int n)
{
int pom,br=0;
pom=n;
while(pom>0)
{
br++;
pom/=10;
}
return br;
}
int zbir(int n)
{
int pom,a,s=0;
pom=n;
while(pom>0)
{
a=pom%10;
s+=a;
pom/=10;
}
return s;
}
int main()
{
int n;
printf("Vnesete broj: ");
scanf("%d",&n);
205
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Vnesete broj: 584
Programata pe~ati:
Brojot na cifrite na brojot 584 e 3, a nivniot zbir e 17
206
Programski jazik C PISI
Re{enie:
#include<stdio.h>
long int fakt(int n)
{
if(n==1)
return n;
else
return(n*fakt(n-1));
}
int main()
{
int n,k;
printf("Od kolku elementi i od koja klasa: ");
scanf("%d %d",&n,&k);
printf("Brojot na kombinaciite bez povtoruvanje e %d, so
povtoruvanje e %d\n",fakt(n)/(fakt(k)*fakt(n-k)),fakt(k+n-1)/(fakt(k)*fakt(n-
1)));
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
207
Programski jazik C PISI
Re{enie:
#include<stdio.h>
long int stepen(int n,int m)
{
if(m==0)
return 1;
if(n==1)
return 1;
else
return(n*stepen(n,m-1));
}
long int fakt(int n)
{
if(n==1)
return n;
else
return(n*fakt(n-1));
}
int main()
{
int n,k;
printf("Vnesete broj na elementi i klasa: ");
scanf("%d %d",&n,&k);
printf("Varijacii so povtoruvanje na broj se %d, a bez povtoruvanje
%d \n"
,stepen(n,k),fakt(n)/fakt(n-k));
return 0;
}
208
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
209
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
proizvolen pozitiven
a broj
#include<stdio.h>
long int faktoriel(int n)
{
if(n==1)
return n;
else
return(n*faktoriel(n-1));
}
int main()
{
int a;
printf("Vnesete broj: ");
scanf("%d",&a);
printf("Faktoriel od %d e: %ld\n",a,faktoriel(a));
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Vnesete broj: 5
Programata pe~ati:
Faktoriel od 5 e: 120
210
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi koja
mo`e da ima najmnogu
a[100]
100 elementi
broj na elementi vo
n
nizata
i broja~ vo intervalot
#include<stdio.h>
int cifri(int n)
{
int br=0;
while(n>0)
{
br++;
n/=10;
}
return br;
}
int main()
{
int a[100],n,i;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata:\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
211
Programski jazik C PISI
for(i=0;i<n;i++)
printf("%d-tiot broj ima %d cifri.\n",i+1,cifri(a[i]));
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
212
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
br broitel na dropkata
im imenitel na dropkata
NZD od imenitelot i
c
broitelot na dropkata
#include<stdio.h>
#include<math.h>
int nzd(int m,int n)
{
if (n==0) return m;
else return(nzd(n,m%n));
}
int main()
{
int br,im,c;
printf("Vnesete broitel na dropkata: ");
scanf("%d",&br);
printf("Vneseti imenitel na dropkata: ");
scanf("%d",&im);
c=nzd(abs(br),abs(im));
br/=c;
im/=c;
printf("Dropkata skratena e %d/%d.\n",br,im);
return 0;
}
213
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
214
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
broitel na prvata
br1
dropka
imenitel na prvata broitel na zbirot od
im1 br3
dropka dvete dropki
broitel na vtorata
br2
dropka
imenitel na vtorata
im2
dropka
imenitel na zbirot od
NZD od imenitelot i im3
dvete dropki
c broitelot na
dropkata
#include<stdio.h>
#include<math.h>
int nzd(int m,int n)
{
if (n==0) return m;
else return(nzd(n,m%n));
}
int main()
{
int br1,im1,br2,im2,br3,im3,c;
printf("Vnesete broitel i imenitel na prvata dropka:");
scanf("%d %d",&br1,&im1);
printf("Vnesete broitel i imenitel na vtorata dropka:");
scanf("%d %d",&br2,&im2);
if (im1==im2)
{
br3=br1+br2;
im3=im1;
}
215
Programski jazik C PISI
else
{
im3=im2*im1;
br3=br1*im2+br2*im1;
}
c=nzd(abs(br3),abs(im3));
br3/=c;
im3/=c;
printf("Zbirot = %d/%d\n",br3,im3);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Vnesete broitel i imenitel na prvata dropka: 2 3
Vnesete broitel i imenitel na vtorata dropka: 3 4
Programata pe~ati:
Zbirot = 17/12
216
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
broitel na prvata
br1
dropka
imenitel na prvata broitel na razlikata
im1 br3
dropka od dvete dropki
broitel na vtorata
br2
dropka
imenitel na vtorata
im2
dropka
imenitel na razlikata
NZD od imenitelot i im3
od dvete dropki
c broitelot na
dropkata
#include<stdio.h>
#include<math.h>
int nzd(int m,int n)
{
if (n==0) return m;
else return(nzd(n,m%n));
}
int main()
{
int br1,im1,br2,im2,br3,im3,c;
printf("Vnesete broitel i imenitel na prvata dropka:");
scanf("%d %d",&br1,&im1);
printf("Vnesete broitel i imenitel na vtorata dropka:");
scanf("%d %d",&br2,&im2);
if (im2==im1)
{
br3=br1-br2;
im3=im1;
217
Programski jazik C PISI
}
else
{
im3=im2*im1;
br3=br1*im2-br2*im1;
}
c=nzd(abs(br3),abs(im3));
br3/=c;
im3/=c;
printf("Razlika = %d/%d\n",br3,im3);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Vnesete broitel i imenitel na prvata dropka: 2 3
Vnesete broitel i imenitel na vtorata dropka: 3 4
Programata pe~ati:
Razlika = -1/12
218
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
broitel na prvata
br1
dropka
imenitel na prvata broitel na proizvodot
im1 br3
dropka od dvete dropki
broitel na vtorata
br2
dropka
imenitel na vtorata
im2
dropka imenitel na
NZD od imenitelot i im3 proizvodot od dvete
c broitelot na dropki
dropkata
#include<stdio.h>
#include<math.h>
int nzd(int m,int n)
{
if (n==0) return m;
else return(nzd(n,m%n));
}
int main()
{
int br1,im1,br2,im2,br3,im3,c;
printf("Vnesete broitel i imenitel na prvata dropka:");
scanf("%d %d",&br1,&im1);
printf("Vnesete broitel i imenitel na vtorata dropka:");
scanf("%d %d",&br2,&im2);
br3=br1*br2;
im3=im2*im1;
c=nzd(abs(br3),abs(im3));
br3/=c;
im3/=c;
219
Programski jazik C PISI
printf("Proizvodot = %d/%d\n",br3,im3);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Proizvodot = 5/12
220
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
broitel na prvata
br1
dropka
imenitel na prvata broitel na koli~nikot
im1 br3
dropka od dvete dropki
broitel na vtorata
br2
dropka
imenitel na vtorata
im2
dropka imenitel na
NZD od imenitelot i im3 koli~nikot od dvete
c broitelot na dropki
dropkata
#include<stdio.h>
#include<math.h>
int nzd(int m,int n)
{
if (n==0) return m;
else return(nzd(n,m%n));
}
int main()
{
int br1,im1,br2,im2,br3,im3,c;
printf("Vnesete broitel i imenitel na prvata dropka:");
scanf("%d %d",&br1,&im1);
printf("Vnesete broitel i imenitel na vtorata dropka:");
scanf("%d %d",&br2,&im2);
br3=br1*im2;
im3=br2*im1;
c=nzd(abs(br3),abs(im3));
br3/=c;
im3/=c;
printf("Kolicnikot = %d/%d\n",br3,im3);
221
Programski jazik C PISI
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Koli~nikot = 1/15
222
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
koja mo`e da ima
a[100] broj na elementi so
najmnogu 100 brp
paren broj na cifri
elementi
broj na elementi vo
n
nizata
broj na elementi so
brnp
neparen broj na cifri
i broja~ vo nizata
#include<stdio.h>
int broj(int n)
{
int pom,br=0;
pom=n;
while(pom>0)
{
br++;
pom/=10;
}
return br;
}
int main()
{
int a[100],i,brp=0,brnp=0,n;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
223
Programski jazik C PISI
for(i=0;i<n;i++)
if(broj(a[i])%2==0)
brp++;
else
brnp++;
printf("Vo nizata ima %d broevi so paren broj na cifri, a %d broevi
so neparen broj na cifri.\n",brp,brnp);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Vo nizata ima 3 broevi so paren broj na cifri, a 3 broevi so
neparen broj na cifri.
224
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
x,y,z proizvolni broevi
funkcija koja go pronao|a najgolemiot broj od tri
max(a,b,c)
proizvolni broevi a,b i c
#include<stdio.h>
int max(int a,int b,int c)
{
if(a>=b && a>=c)
return a;
if(b>=a && b>=c)
return b;
if(c>=a && c>=a)
return c;
return 0;
}
int main()
{
int x,y,z;
printf("Vnesete gi trite broja: ");
scanf("%d %d %d",&x,&y,&z);
printf("Najgolem e %d\n",max(x,y,z));
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Najgolem e 48
225
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
proizvolni dekadni
a,b
broevi
binarni zapisi na
m,n dekadnite broevi a i
b
cifra od binarniot
ost1
broj m zbir na dvata binarni
rez
cifra od binarniot broevi m i n
ost2
broj n
te`inska pozicija na
poz
cifrite
funkcija koja vr{i pretvorawe na daden dekaden broj
bin(n)
n vo binaren broj
#include<stdio.h>
int bin(int n)
{
int pom,poz,a,bin;
pom=n;
bin=0;
poz=1;
while(pom>0)
{
a=pom%2;
bin+=a*poz;
poz*=10;
pom/=2;
}
return bin;
}
int main()
226
Programski jazik C PISI
{
int a,b,m,n,ost,ost1,ost2,poz=1,rez;
printf("Vnesete dva broja:");
scanf("%d %d",&a,&b);
m=bin(a);
n=bin(b);
printf("Vo binaren broen sistem se: %d i %d.\n",m,n);
rez=0;
ost=0;
while(m!=0 || n!=0)
{
ost1=m%10;
ost2=n%10;
rez=((ost1+ost2+ost)%2)*poz+rez;
ost=(ost1+ost2+ost)/2;
poz*=10;
m/=10;
n/=10;
}
if (ost==1)
rez=rez+ost*poz;
printf("Rezultatot=%d.\n",rez);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Rezultatot=100011
227
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
a[100] koja mo`e da ima
najmnogu 100 elementi
broj na elementi vo
n
nizata
i broja~ vo nizata
#include<stdio.h>
int obr(int n)
{
int pom,m=0,a;
pom=n;
while(pom>0)
{
a=pom%10;
m=m*10+a;
pom/=10;
}
return m;
}
int main()
{
int a[100],i,n;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata.\n");
for(i=0;i<n;i++)
{
228
Programski jazik C PISI
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
a[0]=obr(a[0]);
for(i=1;i<n;i++)
{
if(i%2==0)
a[i]=obr(a[i]);
else
a[i]=a[i]*a[i];
}
printf("Novodobienata niza e:\n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Novodobienata niza e:
51 4096 294 529 81 25
229
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi
broevi koja mo`e
a[100]
da ima najmnogu 100
elementi
NZD na elementite
broj na elementi vo pom
n vo nizata
nizata
i broja~ vo nizata
#include<stdio.h>
int nzd(int m,int n)
{
if (n==0) return m;
else return(nzd(n,m%n));
}
int main()
{
int a[100],n,i,pom;
printf("Od kolku broevi da se bara NZD:");
scanf("%d",&n);
printf("Vnesete gi broevite:\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
pom=nzd(a[0],a[1]);
for(i=1;i<n;i++)
pom=nzd(pom,a[i]);
printf("NZD=%d \n",pom);
return 0;
}
230
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
NZD=5
231
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
koja mo`e da ima
a[100]
najmnogu 100
elementi
NZS na elementite
broj na elementi vo nzs
n vo nizata
nizata
i broja~ vo nizata
#include<stdio.h>
int NZS(int m,int n)
{
int pom,j;
pom=1;
j=2;
do
{
while(m%j==0 || n%j==0)
{
if(m%j==0)
m/=j;
if(n%j==0)
n/=j;
pom*=j;
}
j++;
} while(m!=1 || n!=1);
return pom;
}
232
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
NZS za broevite od nizata e 40
233
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
po~etok na
poc
intervalot
i broja~ vo intervalot
#include<stdio.h>
int obr(int n)
{
int a,pom,m=0;
pom=n;
while (pom>0)
{
a=pom%10;
m=m*10+a;
pom/=10;
}
return m;
}
int main()
{
int i,poc,kraj;
printf("Vnesete pocetok i kraj na intervalot: ");
scanf("%d %d",&poc,&kraj);
for(i=poc;i<=kraj;i++)
if(i%obr(i)==0)
printf("%d / %d = %d\n",i,obr(i),i/obr(i));
return 0;
}
234
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Vnesete po~etok i kraj na intervalot: 10 45
Programata pe~ati:
10 / 1 = 10
11 / 11 = 1
20 / 2 = 10
22 / 22 = 1
30 / 3 = 10
33 / 33 = 1
40 / 4 = 10
44 / 44 = 1
235
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
kraj na intervalot za
n
proveruvawe
i broja~ vo intervalot
#include<stdio.h>
int prost(int n)
{
int j,pr;
pr=1;
j=2;
while(pr && j<=(n/2))
{
if(n%j==0)
pr=0;
j++;
}
return pr;
}
int main()
{
int n,i;
printf("Vnesete n=");
scanf("%d",&n);
for(i=2;i<n;i++)
if(prost(i))
printf("%d\n",i);
return 0;
}
236
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Vnesete n=20
Programata pe~ati:
2
3
5
7
11
13
17
19
237
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
a proizvolen broj
b eksponent
stepen
funkcija {to presmetuva nm
(n,m)
#include<stdio.h>
long int stepen(int n,int m)
{
if(m==0)
return 1;
if(n==1)
return 1;
else
return(n*stepen(n,m-1));
}
int main()
{
int a,b;
printf("Vnesete broj i eksponent: ");
scanf("%d %d",&a,&b);
printf("%d na stepen %d = %ld\n",a,b,stepen(a,b));
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Vnesete broj i eksponent: 2 8
Programata pe~ati:
2 na stepen 8 = 256
238
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi broevi
koja mo`e da ima
a[100]
najmnogu 100
elementi
broj na elementi vo
n
nizata
i broja~ vo nizata
m eksponent
stepen
funkcija {to presmetuva nm
(n,m)
#include<stdio.h>
long int stepen(int n,int m)
{
if(m==0)
return 1;
if(n==1)
return 1;
else
return(n*stepen(n,m-1));
}
int main()
{
int i,n,m;
long int a[100];
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("Na koj stepen da se stepenuvaat: ");
239
Programski jazik C PISI
scanf("%d",&m);
printf("Stepenuvanata niza e: ");
for(i=0;i<n;i++)
{
a[i]=stepen(a[i],m);
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
240
Programski jazik C PISI
241
Programski jazik C PISI
#include<stdio.h>
int main()
{
float ar1,ar2;
int i,n,a[100],brp=0,brnp=0,sp=0,snp=0;
printf("Vnesete n=");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
if(a[i]%2==0)
{
242
Programski jazik C PISI
brp++;
sp+=a[i];
}
else
{
brnp++;
snp+=a[i];
}
}
ar1=float(sp)/float(brp);
ar2=float(snp)/float(brnp);
printf("Aritmetictkata sredina na parnite elementi e %.1f, a na
neparnite %.1f.\n",ar1,ar2);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Vnesete n=5
a[0]=120 a[1]=54 a[2]=89 a[3]=77 a[4]=23
Programata pe~ati:
243
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
broj koj pretstavuva
x
osnova vo sumata
n kraj na intervalot s suma (zbir)
i broja~ vo intervalot
stepen
funkcija {to presmetuva nm
(n,m)
#include<stdio.h>
long int stepen(int n,int m)
{
if(m==0)
return 1;
if(n==1)
return 1;
else
return(n*stepen(n,m-1));
}
int main()
{
int i,x,n,s=0;
printf("Vnesete broj: ");
scanf("%d",&x);
printf("Vnesete n: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
s+=stepen(x,i);
printf("Sumata e: %d\n",s);
return 0;
}
244
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Vnesete broj: 3
Vnesete n: 4
Programata pe~ati:
Sumata e: 120
245
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
pi konstantata π
#include<stdio.h>
#include<math.h>
float faktoriel(int x);
int main()
{
float cosinus=1,alfa,alfarad,pi=3.141592,pom;
int i,n,br=0;
do
{
printf("Vnesete ja vrednosta na agolot alfa vo stepeni\t");
scanf("%f",&alfa);
}
while (alfa>180);
pom=alfa;
if (alfa>=90)
alfa=180-alfa;
alfarad=alfa*pi/180;
246
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
cos 45=0.701034
247
Programski jazik C PISI
248
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
249
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
n kraj na intervalot
i broja~ vo intervalot
prima vrednost 1
dokolku daden broj go
zadovoluva uslovot i
rezultat
0 dokolku daden broj
ne go zadovoluva
uslovot
funkcija koja {to proveruva dali cifrite na daden
cif(x)
broj x mu se vo raste~ki redosled
#include<stdio.h>
int cif(int x);
int main()
{
int n,i,rezultat;
do
{
printf("Vnesete do koj broj da se proveruva\t");
scanf("%d",&n);
}
while (n<9);
printf("\n\nBroevi kaj koi cifrite se vo rastecki redosled se
broevite:\n");
for (i=10;i<=n;i++)
{
rezultat=cif(i);
if (rezultat==1)
printf ("%d ,",i);
}
printf("\n\n\n");
system("pause");
return 0;
}
250
Programski jazik C PISI
int cif(int x)
{
int min,da=1,cifra;
min=x%10;
x/=10;
while ((x!=0)&& da==1)
{
cifra=x%10;
if (cifra >= min)
da=0;
else
{
min=cifra;
x/=10;
}
}
return da;
}
_______________________________________________________
Test primer
VLEZ:
12, 13, 14, 15, 16, 17, 18, 19, 23, 24, 25, 26, 27, 28, 29, 34, 35, 36,
37, 38, 39, 45, 46, 47, 48, 49, 56, 57, 58, 59, 67, 68, 69, 78, 79, 89
251
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
n kraj na intervalot
i broja~ vo intervalot
funkcija koja proveruva dali daden broj x e
prost(x)
prost broj
funkcija koja go presmetuva zbrot od cifrite
zbircifri(y)
na daden broj y
proizvodcifri funkcija koja go presmetuva proizvodot od
(z) cifrite na daden broj z
#include<stdio.h>
int prost(int x);
int zbircifri(int y);
int proizvodcifri(int z);
int main()
{
int i,n;
do
{
printf("Vnesete do koj broj da se proveruva:\t");
scanf("%d",&n);
}
while (n<=0);
printf("\n\nBroevi pomali od brojot %d koi go ispolnuvaat uslovot se:
",n);
for (i=3;i<=n;i+=2)
{
if (prost(i) && prost(zbircifri(i)) && prost(proizvodcifri(i)))
printf("%d, ",i);
}
printf("\n\n\n");
system("pause");
return 0;
}
int prost(int x)
252
Programski jazik C PISI
{
int DA=1,j;
for (j=2;j<=x/2;j++)
{
if (x%j==0)
{
DA=0;
break;
}
}
return DA;
}
int zbircifri(int y)
{
int zbir=0;
while (y>0)
{
zbir+=y%10;
y/=10;
}
return zbir;
}
int proizvodcifri(int z)
{
int proizvod=1;
while(z>0)
{
proizvod*=z%10;
z/=10;
}
return proizvod;
}
_______________________________________________________
Test primer
VLEZ:
253
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
broj na ~lenovi vo
n
zbirot suma suma (zbir)
i broja~
faktoriel
funkcija {to presmetuva faktoriel na daden broj x
(x)
#include<stdio.h>
#include<math.h>
float faktoriel(float x);
int main()
{
float n,i,suma=0;
do
{
printf("Vneste kolku clenovi da ima sumata:\t");
scanf("%f",&n);
}
while (n<0);
for (i=1;i<=n;i++)
{
suma+=faktoriel(i)/(pow(n,i)+faktoriel(i));
}
printf("\n\nSumata iznesuva %8.7f.\n\n",suma);
system("pause");
return 0;
}
float faktoriel(float x)
{
float izlez=1,j;
for (j=1;j<=x;j++)
{
izlez*=j;
}
return izlez;
}
254
Programski jazik C PISI
_______________________________________________________
Test primer
VLEZ:
255
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
broj koj se dobiva
kako zbir na brojot
n proizvolen broj m
n i negoviot
obraten broj
dobiva vrednost 1
koga ne e ispolnet
kraj brojac broj na svrtuvawa
uslovot i 0 koga toj
uslov e ispolnet
obraten funkcija koja go presmetuva obratniot broj na daden
(x) broj x
#include<stdio.h>
int obraten(int x);
int main()
{
int n,m,brojac=0,kraj=1;
do
{
printf("Vneste eden pozitiven priroden broj:\t");
scanf("%d",&n);
}
while (n<0);
m=n+obraten(n);
brojac++;
while (kraj)
{
if (m==obraten(m))
{
kraj=0;
printf("\n\nSe dobiva palindrom posle %d svrtuvanja, a toa e
brojot %d.\n\n",brojac,m);
}
else
{
256
Programski jazik C PISI
m+=obraten(m);
brojac++;
}
if (brojac==10)
{
printf("\n\nNe se dobi pailndrom ni posle 10 svrtuvanja.\n\n");
kraj=0;
}
}
system("pause");
return 0;
}
int obraten(int x)
{
int izlez=0;
while (x>0)
{
izlez=10*izlez+x%10;
x/=10;
}
return izlez;
}
_______________________________________________________
Test primer
VLEZ:
257
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
n vrednost na grupata vrednost na
kf binomniot
k vrednost na klasata koeficient
faktoriel
funkcija {to presmetuva faktoriel na daden broj x
(x)
#include<stdio.h>
float faktoriel(float x);
int main()
{
float n,k,kf;
do
{
printf("Vneste ja vrednosta na grupata(n>0):\t");
scanf("%f",&n);
printf("Vnesete ja klasata (k>0 i k<n)");
scanf("%f",&k);
}
while ((n<0) || (k<0) || (k>n));
kf=faktoriel(n)/(faktoriel(k)*faktoriel(n-k));
printf("\n\nBinomniot koeficient na grupata %4.2f i klasata %4.2f
iznesuva %8.3f\n\n",n,k,kft);
system("pause");
return 0;
}
float faktoriel(float x)
{
float izlez=1,i;
for (i=1;i<=x;i++)
izlez*=i;
return izlez;
}
258
Programski jazik C PISI
_______________________________________________________
Test primer
VLEZ:
259
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
n proizvolen broj
broj koj e pogolem od
m razlika pome|u
n
prima vrednost 1 ako razlika broevite m ako e
brojot m e prost broj prost broj i n
k
i 0 ako ne e prost
broj
prost(x) funkcija koja odreduva dali daden broj x e prost broj
#include<stdio.h>
int prost(int x);
int main()
{
int n,razlika,m,k;
do
{
printf("Vnesete eden priroden broj:\t");
scanf("%d",&n);
}
while(n<0);
m=n+1;
k=prost(m);
while (k!=1)
{
m++;
razlika=m-n;
k=prost(m);
}
printf("\n\nPrv prost broj pogolem od brojot %d e brojot %d i
razlikata megu niv iznesuva %d.\n\n",n,m,razlika);
system("pause");
return 0;
}
int prost(int x)
{
260
Programski jazik C PISI
int DA=1,i;
for (i=2;i<=x/2;i++)
{
if (x%i==0)
{
DA=0;
break;
}
}
return DA;
}
_______________________________________________________
Test primer
261
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
n kraj na interval broj na broevi koi go
broja~ vo brojac ispolnuvaat
i zadadeniot uslov
interval
funkcija koja proveruva dali daden broj x e prost
prost(x)
broj
funkcija koja go presmetuva zbirot od cifrite na
zbircifri(y)
daden broj y
#include<stdio.h>
int prost(int x);
int zbircifri(int y);
int main()
{
int i,brojac=0,n;
printf("Vnesete do koj broj da se proveruva:\t);
scanf("%d",&n)
printf("Broevi koi se pomali od brojot %d i koi go ispolnuvaat
postaveniot uslov se broevite: ",n);
for (i=3;i<n;i+=2)
{
if (prost(i) && prost(zbircifri(i)))
{
printf("%d, ",i);
brojac++;
}
}
printf("\n\nVkupno se %d takvi broevi.\n\n",brojac);
system("pause");
return 0;
}
int prost(int x)
{
int DA=1,i;
for (i=2;i<=x/2;i++)
262
Programski jazik C PISI
{
if (x%i==0)
{
DA=0;
break;
}
}
return DA;
}
int zbircifri(int y)
{
int izlez=0;
while (y>0)
{
izlez+=y%10;
y/=10;
}
return izlez;
}
_______________________________________________________
Test primer
VLEZ:
263
Programski jazik C PISI
6. Poka`uva~i
1. Da se napi{e programa vo programskiot jazik C so koja }e se
ispe~ati obratniot zbor na daden zbor.
Re{enie:
Vlezni promenlivi Izlezni promenlivi
nizi od karakteri koi
zbor[20] mo`e da imaat najmnogu
copy[20] 20 karakteri
a element od nizata
i broja~ vo nizata
#include<stdio.h>
#include<string.h>
void obr(char *c)
{
int i,n;
n=strlen(c);
char pom;
for(i=0;i<n/2;i++)
{
pom=c[i];
c[i]=c[n-i-1];
c[n-i-1]=pom;
}
}
int main()
{
int a,i=0;
char zbor[20],copy[20];
printf("Vnesete go zborot: ");
while(i<20 && (a=getchar())!='\n')
zbor[i++]=a;
264
Programski jazik C PISI
zbor[i]=0;
strcpy(copy,zbor);
obr(copy);
printf("Obratniot zbor e %s\n",copy);
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
265
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
n broj na elementi
i broja~
max1,
max2,
proizvolni broevi
max3,
x
funkcija koja vr{i sortirawe na tri proizvolni
sort(*a,*b,*c)
broevi a,b i c
#include<stdio.h>
void sort(int *a,int *b,int *c)
{
int pom;
if(*a>*b)
{
pom=*a;
*a=*b;
*b=pom;
if(*a>*c)
{
pom=*a;
*a=*c;
*c=pom;
}
if(*b>*c)
{
pom=*b;
*b=*c;
*c=pom;
}
}
else
266
Programski jazik C PISI
if(*b>*c)
{
pom=*b;
*b=*c;
*c=pom;
}
if(*a>*b)
{
pom=*a;
*a=*b;
*b=pom;
}
}
int main()
{
int i,n,max1,max2,max3,x;
printf("Vnesete n=");
scanf("%d",&n);
printf("Vnesete tri broja:");
scanf("%d %d %d",&max1,&max2,&max3);
sort(&max1,&max2,&max3);
for(i=4;i<=n;i++)
{
sort(&max1,&max2,&max3);
printf("Vnesete go %d-tiot broj: ",i);
scanf("%d",&x);
if(x>=max1)
max1=x;
}
sort(&max1,&max2,&max3);
printf("Trite najgolemi broevi se: %d %d i
%d.\n",max1,max2,max3);
return 0;
}
267
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Vnesete n=6
Vnesete tri broja: 50 49 102
Vnesete go 4-tiot broj: 56
Vnesete go 5-tiot broj: 70
Vnesete go 6-tiot broj: 15
Programata pe~ati:
Trite najgolemi broevi se: 56 70 i 102.
268
Programski jazik C PISI
Re{enie:
Vlezni promenlivi Izlezni promenlivi
niza od celi
broevi koja mo`e
a[100]
da ima najmnogu 100
elementi
broj na elementi vo
n
nizata
i broja~ vo nizata
#include<stdio.h>
void Vnesete(int a[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
}
void pecati(int a[],int n)
{
int i;
for(i=0;i<n;i++)
269
Programski jazik C PISI
printf("%d ",a[i]);
printf("\n");
}
void smeni(int *m,int *n)
{
int pom;
pom=*m;
*m=*n;
*n=pom;
}
void SimpleSort(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])
smeni(&a[i],&a[j]);
pecati(a,n);
}
}
int main()
{
int a[100],i,n;
printf("Kolku elementi da ima nizata? ");
scanf("%d",&n);
printf("Vnesete ja nizata.\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("Podreduvanjeto na nizata e:\n");
SimpleSort(a,n);
return 0;
}
270
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
Podreduvaweto na nizata e:
-4 15 64 -20 12 33
-4 15 64 -20 12 33
-20 15 64 -4 12 33
-20 15 64 -4 12 33
-20 15 64 -4 12 33
-20 15 64 -4 12 33
-20 -4 64 15 12 33
-20 -4 64 15 12 33
-20 -4 64 15 12 33
-20 -4 15 64 12 33
-20 -4 12 64 15 33
-20 -4 12 64 15 33
-20 -4 12 15 64 33
-20 -4 12 15 64 33
-20 -4 12 15 33 64
271
Programski jazik C PISI
272
Programski jazik C PISI
_______________________________________________________
Test primer:
VLEZ:
Programata pe~ati:
273