mihainan

Lab PC

Oct 24th, 2014
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.24 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. /* Definim un macro ce reprezinta numarul maxim de elemente ale vectorilor. */
  4. #define MaxN 1003
  5.  
  6. int main() {
  7.  
  8.     int v1[MaxN], v2[MaxN], N1, N2, k, v[2*MaxN], i, j;
  9.  
  10.     scanf("%d", &N1);
  11.     for(i = 0; i < N1; i++)
  12.     {
  13.         scanf("%d", &v1[i]);
  14.     }
  15.     scanf("%d", &N2);
  16.     for(i = 0; i < N2; i++)
  17.     {
  18.         scanf("%d", &v2[i]);
  19.     }
  20.  
  21.     /* Parcurge cei doi vectori in paralel si vom adauga elementele in ordine
  22.     * in vectorul v. */
  23.     i = 0;
  24.     j = 0;
  25.     k = 0;
  26.     while(i < N1 && j < N2)
  27.     {
  28.         if(v1[i] < v2[j])
  29.         {
  30.             v[k] = v1[i];
  31.             i++;
  32.             k++;
  33.         }
  34.         else
  35.         {
  36.             v[k] = v2[j];
  37.             j++;
  38.             k++;
  39.         }
  40.     }
  41.  
  42.     /* Daca lungimile celor doi vectori nu sunt egale inseamna ca intr-unul din ei
  43.     * mai sunt elemente ce nu au fost luate in calcul. Copiem aceste elemente in
  44.     * vectorul de interclasare. */
  45.     if(i == N1)
  46.     {
  47.         while(j < N2)
  48.         {
  49.             v[k] = v2[j];
  50.             j++;
  51.             k++;
  52.         }
  53.     }
  54.  
  55.     if(j == N2)
  56.     {
  57.         while(i < N1)
  58.         {
  59.             v[k] = v1[i];
  60.             i++;
  61.             k++;
  62.         }
  63.     }
  64.  
  65.     for(i = 0; i < k; i++)
  66.     {
  67.         printf("%d ", v[i]);
  68.     }
  69.     printf("\n");
  70.  
  71.     return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment