Advertisement
KvArt

Untitled

Apr 7th, 2016
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.98 KB | None | 0 0
  1. #include<stdio.h>
  2. #define MAX 32
  3.  
  4. void upisNizaA(int a[MAX], int na)
  5. {
  6.     int br = 0;
  7.     for (int i = MAX - na; i<MAX; i++)
  8.     {
  9.         scanf("%d", &a[i]);
  10.         br++;
  11.         if (a[i]>1 || a[i]<0)
  12.         {
  13.             printf("Greska pri unosu\n");
  14.             printf("Unesite ponovo binarni niz od'0' i '1'\n");
  15.             upisNizaA(a, na - (na - br));
  16.         }
  17.     }
  18. }
  19. void upisNizaB(int b[MAX], int nb)
  20. {
  21.     {
  22.         int br = 0;
  23.         for (int i = MAX - nb; i<MAX; i++)
  24.         {
  25.             scanf("%d", &b[i]);
  26.             br++;
  27.             if (b[i]>1 || b[i]<0)
  28.             {
  29.                 printf("Greska pri unosu\n");
  30.                 printf("Unesite ponovo binarni niz od'0' i '1'\n");
  31.                 upisNizaB(b, nb - (nb - br));
  32.             }
  33.         }
  34.     }
  35. }
  36. main()
  37. {
  38.     int a[MAX] = { 0 }; int b[MAX] = { 0 }; int c[MAX] = { 0 };
  39.     int na, nb,prenos, i, duzina = MAX - 1, predstava = 0,x,j;
  40.     char izbor;
  41.             printf("Unesite duzinu binarnog broja A: ");
  42.             scanf("%d", &na);
  43.             printf("\nUnesite binarni broj A\n\n");
  44.             upisNizaA(a, na);
  45.                     printf("\nUnesite duzinu binarnog broja B: ");
  46.                     scanf("%d", &nb);
  47.                     printf("\nUnesite binarni broj B\n\n");
  48.                     upisNizaB(b, nb);
  49.                     printf("\n\nDa li zelite (1) Opadajuci ili (2) Neopadajuci sortirani niz?\n ");
  50.                     scanf("%d", &izbor);
  51.                         for (i = 0; i < MAX - 1; i++)
  52.                             for (j = i + 1; j < MAX; j++)
  53.                                 switch (izbor)
  54.                                     {
  55.                                     default:
  56.                                         printf("\nMolim vas da vas izbor bude 1 ili 2");
  57.                                         break;
  58.                                     case 1:
  59.                                     {
  60.                                         if (a[i] > a[j])
  61.                                         {
  62.                                             x = a[i];
  63.                                             a[i] = a[j];
  64.                                             a[j] = x;
  65.                                         }
  66.                                         if (b[i] > b[j])
  67.                                         {
  68.                                             x = b[i];
  69.                                             b[i] = b[j];
  70.                                             b[j] = x;
  71.                                         } break;
  72.                                     }
  73.                                     break;
  74.                                     case 2:
  75.                                         if (a[i] < a[j])
  76.                                         {
  77.                                             x = a[i];
  78.                                             a[i] = a[j];
  79.                                             a[j] = x;
  80.                                         }
  81.                                         if (b[i] < b[j])
  82.                                         {
  83.                                             x = b[i];
  84.                                             b[i] = b[j];
  85.                                             b[j] = x;
  86.                                         }
  87.                                 break;
  88.                             }
  89.                         printf("\nUredjeni binarni niz 'A' je:\n");
  90.                         {
  91.                         for (i = 0; i < MAX; i++)
  92.                             printf("%d", a[i]);
  93.                         }
  94.                         printf("\nUredjeni binarni niz 'B' je:\n");
  95.                         {
  96.                             for (i = 0; i < MAX; i++)
  97.                                 printf("%d", b[i]);
  98.                         }
  99.                             for (prenos = 0, i = MAX - 1; i >= 0; i--)
  100.                                 {
  101.                                     c[i] = a[i] + b[i] + prenos;
  102.                                     switch (c[i])
  103.                                         {
  104.                                             default: prenos = 0; break;
  105.                                             case 2: c[i] = 0; prenos = 1; break;
  106.                                             case 3: c[i] = 1; prenos = 1; break;
  107.                                         }
  108.                                 }
  109.                             if (c[0] == 1)
  110.                             {
  111.                                 c[i] ^= 1;
  112.                                 for (i = 0, duzina; duzina > 0; duzina--, i++)
  113.                                     predstava = predstava + (c[duzina] * pow(2, i));
  114.                                 printf("\nPredstava zbira niza 'A' i 'B' je: -%d\n\n", predstava);
  115.  
  116.                             }
  117.                             else
  118.                             {
  119.                                 for (i = 0, duzina; duzina >= 0; duzina--, i++)
  120.                                     predstava = predstava + (c[duzina] * pow(2, i));
  121.                                 printf("\nPredstava zbira niza 'A' i 'B' je: %d\n\n", predstava);
  122.                             }
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement