Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Поголем максимум Problem 1 (0 / 12)
- Од стнадарден влез се чита цел број N не поголем од 100 кој претставува број на елементи на низата a. Потоа се читаат содветно елементите на низата a. Потоа се чита цел број M не поголем од 100 кој претставува број на елементи на низата b и содветно се читаат елементите на низата b.
- Треба да се креира нова низа c на следниот начин: првиот елемент е поголемиот од максимумите во двете низи; вториот елемент е поголемиот од максимумите на последните n/2 елементи од низата a и последните m/2 елементи од низата b; третиот елемент е поголемиот од максимумите на последните n/4 елементи од низата a и последните m/4 елементи од низата b итн се додека низите имаат елементи. Итерацијата завршува кога барем кај една од низите n/k или m/k стане 0 (k={2,4,8,16,...})
- На стандарден излез да се испечати новодобиената низа c.
- Наоѓањето максимум во низа да се реализира со посебна рекурзивна функција
- #include<stdio.h>
- int MAX(int a[], int n, int i, int max)
- {
- if(i==n)
- return max;
- if(a[i]>max)
- max=a[i];
- return MAX(a,n,i+1,max);
- }
- int main()
- {
- int a[100],b[100],c[100];
- int j=0,i,m,n;
- scanf("%d",&n);
- for(i=0; i<n; i++)
- {
- scanf("%d",&a[i]);
- }
- scanf("%d",&m);
- for(i=0; i<m; i++)
- {
- scanf("%d",&b[i]);
- }
- // scanf("%d",&k);
- while(n>0&&m>0) {
- int a1,b1;
- a1=MAX(a, n, 0, a[0]);
- b1=MAX(b, m, 0, b[0]);
- if(a1>b1)
- c[j]=a1;
- else c[j]=b1;
- j++;
- n= n/2;
- m= m/2;
- }
- for(i=0;i<j;i++)
- {
- printf("%d ",c[i]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement