Advertisement
KvArt

Untitled

Apr 7th, 2016
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.85 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<math.h>
  3. #define MAX 32
  4.  
  5. void upisNizaA(int a[MAX], int na)
  6.     {
  7.         int br = 0;
  8.         for (int i = MAX-na; i<MAX; i++)
  9.         {
  10.             scanf("%d", &a[i]);
  11.             br++;
  12.             if (a[i]>1 || a[i]<0)
  13.             {
  14.                 printf("Greska pri unosu\n");
  15.                 printf("Unesite ponovo binarni niz od '0' i '1'\n");
  16.                 upisNizaA(a, na - (na - br));
  17.             }
  18.         }
  19.     }
  20. void upisNizaB(int b[MAX], int nb)
  21.     {
  22.         {
  23.             int br = 0;
  24.             for (int i = MAX-nb; i<MAX; i++)
  25.             {
  26.                 scanf("%d", &b[i]);
  27.                 br++;
  28.                 if (b[i]>1 || b[i]<0)
  29.                 {
  30.                     printf("Greska pri unosu\n");
  31.                     printf("Unesite ponovo binarni niz od '0' i '1'\n");
  32.                     upisNizaB(b, nb - (nb - br));
  33.                 }
  34.             }
  35.         }
  36.     }
  37. main()
  38. {
  39.     int a[MAX]={ 0 }; int b[MAX] = { 0 }; int c[MAX] = { 0 };
  40.     int na, nb, prenos, i, duzina=MAX-1,predstava=0;
  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.                     for (prenos = 0, i = MAX-1; i >= 0; i--)
  50.                         {
  51.                             c[i] = a[i] + b[i] + prenos;
  52.                             switch (c[i])
  53.                                 {
  54.                                     default: prenos = 0; break;
  55.                                     case 2: c[i] = 0; prenos = 1; break;
  56.                                     case 3: c[i] = 1; prenos = 1; break;
  57.                                 }
  58.                         }
  59.                                         if (c[0] == 1)
  60.                                             {
  61.                                                 c[i] ^= 1;
  62.                                                 for (i = 0, duzina; duzina > 0; duzina--, i++)
  63.                                                     predstava = predstava + (c[duzina] * pow(2, i));
  64.                                                 printf("\nPredstava zbira niza 'A' i 'B' je: -%d\n\n", predstava);
  65.  
  66.                                             }
  67.                                         else
  68.                                         {
  69.                                             for (i = 0, duzina; duzina >= 0; duzina--, i++)
  70.                                                 predstava = predstava + (c[duzina] * pow(2, i));
  71.                                                     printf("\nPredstava zbira niza 'A' i 'B' je: %d\n\n", predstava);
  72.                                         }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement