Форум программистов, компьютерный форум CyberForum.ru

ПОМОЧЬ отсортировать массив по количеству бит, равных 0 (в двоичной форме) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать класс сверхбольших целых чисел http://www.cyberforum.ru/cpp-beginners/thread734059.html
помогите разобраться пожалуйста, буду благодарен за любую помощь, очень нужно решить к зачёту 1. Написать класс сверхбольших целых чисел (нет ограничений на количество цифр) использовать массив типа char, реализовать основные математические операции.
C++ Решить СЛАУ методом Гаусса (проверить) Есть код!компилируется без ошибок.Задача программы решить СЛАУ методом Гаусса Но я не понимаю почему вывод информации осуществляется некорректно, ребят помогите разобраться пожалуйста! #define N 20 #include <CONIO.H> #include <STDIO.H> #include <MATH.H> void glavelem(int k,double mas,int n,int otv); http://www.cyberforum.ru/cpp-beginners/thread734051.html
C++ Массивы:многомерный и одномерный (заменить нулями все отрицательные числа выше главной диагонали)
Вот массив номер 1 (многомерный) тут задача была заменить нулями все отрицательные числа выше главной диагонали И найти место максимума среди чисел ниже побочной диагонали #include <iostream> using namespace std; void main() {int i,j,max,jmax,imax; int matrix ; cout<<"Input matrix\n"; for(i=0;i<3;i++) for(j=0;j<3;j++)
В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении C++
В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении.
C++ Разделить строку strtok http://www.cyberforum.ru/cpp-beginners/thread734044.html
Есть строка: str = "aaa;bbb;ccc;;ddd"; Если ее разделять при помощи strtok(), то функция проигнорирует вторую точку запятой (ccc;;ddd) и в итоге, допустим, в массиве mas будет только 4 элемента: mas = "aaa"; mas = "bbb"; mas = "ccc"; mas = "ddd";
C++ Обращение ко второму элементу массива указателей на строки Добрый день. Не получается обратиться ко второму элементу: #include <stdio.h> int main(void) { char **ss = { "Run away", "Peace to all", NULL }; подробнее

Показать сообщение отдельно
rammen33
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 11
16.12.2012, 23:12     ПОМОЧЬ отсортировать массив по количеству бит, равных 0 (в двоичной форме)
Полное задание такое ПОРАЗРЯДНЫЕ ОПЕРАЦИИ :
24. Дан массив из элементов типа unsigned char. Вывести массив в порядке
возрастания по количеству бит равных 0. Вывести массив в десятичном,
шестнадцатеричном и двоичном форматах. Размер массива вводится пользователем во
время выполнения программы. Массив заполняется случайными числами.
Я написал почти все, кроме основной-ВЫВОДА отсортированного по НОЛИКАМ массива, либо просто вывести...
ПОМОГИТЕ, ПОЖАЛУЙСТА!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include<iostream>
#include<time.h>
int main(int argc, char* argv[])
{
    using namespace std;
setlocale(LC_ALL,"rus");
        short i, *a, n, j, k=1;
        unsigned short mask = 0x8000;
        unsigned short temp = 0x0000;
      const char num [17]="0123456789ABCDEF";
        srand(time(NULL));
cout<<"Введите размер массива"<<endl;
cin>>n;
        a = new short[n];
        for(i=0; i<n; i++)
                a[i] = rand()%10;
        cout<<"Массив в стандартном виде: \n";
        for(i=0; i<n; i++)
                printf("%d\n",a[i]);
        //------------ просто СОРТИРОВКА массива пузырьком в десятичном виде, но это не то =(
        char tmp;
    cout<<"Отсортированный массив: \n";
         for(int i=0;i<n-1;++i) 
         { for(int j=0;j<n-1;++j)
             { if (a[j+1]<a[j]) 
              { tmp=a[j+1]; 
               a[j+1]=a[j]; 
               a[j]=tmp; }}}
        for(i=0; i<n; i++)
                printf("%d\n",a[i]);
    cout<<"Массив в x2 виде: \n";
        for(i=0; i<n; i++)
        {
                for(j=0; j<16; j++)
                {
                        if (!(j%4)) printf(" ");
                        if(a[i] & mask)
                                printf("%c", '1');
                        else
                            printf("%c", '0');
                        mask >>= 1;
                }
                printf("\n");
                mask = 0x8000;}
    cout<<"Массив в x4 виде: \n";
        mask = 0xC000;
        for(i=0; i<n; i++)
        {
                for(j=0; j<16; j+=2)
                {
                        temp = a[i] & mask;
                        temp >>= (16-k*2);
                        mask >>= 2;
                        printf("  %d", temp);
                        k+=1;
                }
                cout<<endl;
                k=1;
                mask = 0xC000;
        }
       
        mask = 0xF000;
        k=1;
    cout<<"Массив в x16 виде: \n";
        for(i=0; i<n; i++)
        { for(j=0; j<16; j+=4)
                {       temp = a[i] & mask;
                        temp >>= (16-k*4);
                        mask >>= 4;
                        printf("%c", num[temp]);
                        k+=1;
                }
                mask = 0xF000;
                k = 1;cout<<endl;
        }
        cout<<endl;system("pause");
                return 0;
}
Добавлено через 3 минуты
или не париться и сделать доп. массив в двоичном представлении отсортировать его??

Добавлено через 1 час 14 минут
Просто почти все написано, только подсказать, направить =((( Ребят, ну очень срочно нужно!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru