Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % Задача број 1: На натпревар по лизгање, се натпреваруваат лизгачи репрезентативци од повеќе
- држави. Судиите за лизгачите чуваат информации за редниот број, висината и освоеното
- место во три посебни листи. Судиите имаат потреба од функција која ќе ги добие овие три
- листи како аргументи и истите ќе ги сортира во растечки редослед според освоеното место
- на лизгачите. Постои можност да повеќе лизгачи освојат исто место, така што во тој случај, се
- сортираат во опаѓачки редослед според висината на лизгачите . Резултантните листи треба
- да ги содржат сортирани лизгачите според дадените критериуми и притоа да ги содржат
- само оние лизгачи кои се класифицирале во првите 10 места (лизгачите кои освоиле послабо
- место да се отфрлат од листата).
- #include <stdio.h>
- #include <stdlib.h>
- void swap(int *a, int *b) {
- int temp = *a;
- *a=*b;
- *b=temp;
- }
- void podredi(int *broj, int *visina, int *mesto, int *n) {
- int i,j;
- for (i=0;i<*n-1;i++)
- for (j=i+1;j<*n;j++)
- if (mesto[i]>mesto[j] || (mesto[i]==mesto[j] && visina[i]<visina[j])) {
- swap(&broj[i],&broj[j]);
- swap(&visina[i],&visina[j]);
- swap(&mesto[i],&mesto[j]);
- }
- i = *n-1;
- while (mesto[i]>10) i--;
- *n=i+1;
- }
- int main() {
- int broj[]={1,2,3,4,5,6,7};
- int visina[]={190,182,178,179,150,201,170};
- int mesto[]={11,8,7,1,2,8,8};
- int n=7,i;
- podredi(broj,visina,mesto,&n);
- for (i=0;i<n;i++) printf("%d ",broj[i]); printf("\n");
- for (i=0;i<n;i++) printf("%d ",visina[i]); printf("\n");
- for (i=0;i<n;i++) printf("%d ",mesto[i]); printf("\n");
- return 0;
- }
- %Задача број 2:
- Да се напише функција кoја рабoти сo низи oд целoбрoјни елементи. Функцијата какo аргументи
- ги дoбива двете низи и дoлжините на низите. Функцијата треба ја прoмени пoмалата низа така
- штo на крајoт oд пoмалата низа ќе ги дoдаде елементите пд пoгплемата низа кoи се наoѓаат на 3n
- ппзиција (n=0,1,2,....) т.е. елементите на пoзиција 0, 3, 6, 9 .....
- Задачата да се реши со ппмош на покажувачи (забранетo е кпристење на средни загради).
- Пример:
- Niza1=[1,2,3,4,5,6,7,8]
- Niza2=[9,10,11]
- Niza2_promeneta=[9,10,11,1,4,7]
- #include <stdio.h>
- #include <stdlib.h>
- void f(int *niza1, int *d1, int *niza2, int *d2) {
- int i,k=0;
- if (*d1>*d2) {
- for (i=0;i<*d1;i+=3) {
- *(niza2+*d2+k)=*(niza1+i);
- k++;
- }
- *d2+=k;
- }
- else {
- for (i=0;i<*d2;i+=3) {
- *(niza1+*d1+k)=*(niza2+i);
- k++;
- }
- *d1+=k;
- }
- }
- int main() {
- int niza1[15]={1,2,3,4,5,6,7,8};
- int niza2[15]={9,10,11};
- int d1=8;
- int d2=3;
- int i;
- f(niza1,&d1,niza2,&d2);
- for (i=0;i<d1;i++)
- printf("%d ",niza1[i]);
- printf("\n");
- for (i=0;i<d2;i++)
- printf("%d ",niza2[i]);
- printf("\n");
- return 0;
- }
- %Zadaca Broj 3 (prva zadaca od laboratoriski za nizi)
- #include <stdio.h>
- #include <math.h>
- int main()
- {
- int n[30],n2[30],d,i,max;
- printf("Vnesete go brojot na clenovi vo nizata \n");
- scanf("%d",&d);
- for(i=0;i<d;i++)
- {
- scanf("%d",&n[i]);
- }
- max=n[0];
- for(i=1;i<d;i++)
- {
- if(n[i]>max) {max=n[i];}
- }
- printf("%d \n",max);
- for(i=0;i<d;i++)
- {
- n2[i]=abs(max-n[i]);
- }
- for(i=0;i<d;i++)
- {
- printf("%d",n2[i]);
- }
- return 0;
- }
- %Zadaca Broj 4 (votra zadaca od laboratoriski za nizi)
- #include <stdio.h>
- void f(int *n,int d, int k)
- {
- int i,p,r;
- if (k>=d) printf("Greska");
- else
- {
- p=0;
- for(i=k;i<d;i++)
- {
- n[p]=n[i];
- p++;
- }
- }
- }
- int main()
- {
- int niza[30],i,dolz,broj;
- printf("Vnesete ja dolzinata na nizata \n");
- scanf("%d",&dolz);
- printf("Vnesete do koj element da se isfrli \n");
- scanf("%d",&broj);
- printf("Vnesete ja vasata niza \n");
- for(i=0;i<dolz;i++)
- {
- scanf("%d",&niza[i]);
- }
- f(niza,dolz,broj);
- for(i=0;i<dolz-broj;i++)
- {
- printf("%d",niza[i]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement