Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define MAX 100
- // Ucitati niz brojeva i zadrzati za svaki element najnizih 7bita
- // Ispisati niz
- int main() {
- int n, i, j ;
- unsigned char arr[MAX];
- // ucitavanje i cuvanje low 7bit
- printf("Uneti broj niza ");
- scanf("%d", &n);
- if (n <= 0 || n > MAX) return 1;
- for (i = 0; i < n; i++) {
- scanf("%u", &arr[i]);
- arr[i] &= 0x7F;
- }
- //Ispis niza
- for (i = 0; i < n; i++) {
- printf("%d ", arr[i]);
- }
- //Za svaki element biramo broj binarnih jedinica
- //Ukoliko je broj neparan, dodati bit parnosti u 8. bit, else dont do shit
- //Racunanje bita parnosti
- for (i = 0; i < n; i++) {
- int ones = 0, mask = 0x1;
- for (j = 0; j < 7; j++) {
- // if (arr[i] & mask) ones++;
- ones += arr[i] & mask ? 1 : 0;
- mask <<= 1;
- }
- //if (ones % 2) arr[i] += 128;
- arr[i] |= ones & 1 ? 0x80 : 0; //ili and sa 01111111 ili or sa 0
- }
- //Ispis
- printf("Ucitani niz je:\n ");
- for (i = 0; i < n; i++) {
- printf("%d ", arr[i]);
- }
- //Selection Sort TEST
- /*for (int i = 0; i < n; i++) {
- int small = arr[i];
- int pos = i;
- for (int j = i + 1; j < n; j++) {
- if ((arr[i] & 0x7F) > (arr[j] & 0x7F)) {
- small = arr[j];
- pos = j;
- }
- }
- }
- */
- //Selection sort *working*
- for (int i = 0; i < n - 1; i++) {
- for (j = i + 1; j < n; j++) {
- if ((arr[i] & 0x7F) > (arr[j] & 0x7F)){
- unsigned char t = arr[i];
- arr[i] = arr[j];
- arr[j] = t;
- }
- }
- }
- //Ispis
- printf("Ucitani sort niz je:\n ");
- for (i = 0; i < n; i++) {
- printf("%d ", arr[i]);
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement