Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #define MAX 32
- void upisNizaA(int a[MAX], int na)
- {
- int br = 0;
- for (int i = MAX - na; i<MAX; i++)
- {
- scanf("%d", &a[i]);
- br++;
- if (a[i]>1 || a[i]<0)
- {
- printf("Greska pri unosu\n");
- printf("Unesite ponovo binarni niz od'0' i '1'\n");
- upisNizaA(a, na - (na - br));
- }
- }
- }
- void upisNizaB(int b[MAX], int nb)
- {
- {
- int br = 0;
- for (int i = MAX - nb; i<MAX; i++)
- {
- scanf("%d", &b[i]);
- br++;
- if (b[i]>1 || b[i]<0)
- {
- printf("Greska pri unosu\n");
- printf("Unesite ponovo binarni niz od'0' i '1'\n");
- upisNizaB(b, nb - (nb - br));
- }
- }
- }
- }
- main()
- {
- int a[MAX] = { 0 }; int b[MAX] = { 0 }; int c[MAX] = { 0 };
- int na, nb,prenos, i, duzina = MAX - 1, predstava = 0,x,j;
- char izbor;
- printf("Unesite duzinu binarnog broja A: ");
- scanf("%d", &na);
- printf("\nUnesite binarni broj A\n\n");
- upisNizaA(a, na);
- printf("\nUnesite duzinu binarnog broja B: ");
- scanf("%d", &nb);
- printf("\nUnesite binarni broj B\n\n");
- upisNizaB(b, nb);
- printf("\n\nDa li zelite (1) Opadajuci ili (2) Neopadajuci sortirani niz?\n ");
- scanf("%d", &izbor);
- for (i = 0; i < MAX - 1; i++)
- for (j = i + 1; j < MAX; j++)
- switch (izbor)
- {
- default:
- printf("\nMolim vas da vas izbor bude 1 ili 2");
- break;
- case 1:
- {
- if (a[i] > a[j])
- {
- x = a[i];
- a[i] = a[j];
- a[j] = x;
- }
- if (b[i] > b[j])
- {
- x = b[i];
- b[i] = b[j];
- b[j] = x;
- } break;
- }
- break;
- case 2:
- if (a[i] < a[j])
- {
- x = a[i];
- a[i] = a[j];
- a[j] = x;
- }
- if (b[i] < b[j])
- {
- x = b[i];
- b[i] = b[j];
- b[j] = x;
- }
- break;
- }
- printf("\nUredjeni binarni niz 'A' je:\n");
- {
- for (i = 0; i < MAX; i++)
- printf("%d", a[i]);
- }
- printf("\nUredjeni binarni niz 'B' je:\n");
- {
- for (i = 0; i < MAX; i++)
- printf("%d", b[i]);
- }
- for (prenos = 0, i = MAX - 1; i >= 0; i--)
- {
- c[i] = a[i] + b[i] + prenos;
- switch (c[i])
- {
- default: prenos = 0; break;
- case 2: c[i] = 0; prenos = 1; break;
- case 3: c[i] = 1; prenos = 1; break;
- }
- }
- if (c[0] == 1)
- {
- c[i] ^= 1;
- for (i = 0, duzina; duzina > 0; duzina--, i++)
- predstava = predstava + (c[duzina] * pow(2, i));
- printf("\nPredstava zbira niza 'A' i 'B' je: -%d\n\n", predstava);
- }
- else
- {
- for (i = 0, duzina; duzina >= 0; duzina--, i++)
- predstava = predstava + (c[duzina] * pow(2, i));
- printf("\nPredstava zbira niza 'A' i 'B' je: %d\n\n", predstava);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement