Вывод в консоли начинается не с первого элемента, а с какого-то произвольного - C (СИ)

Узнай цену своей работы

Формулировка задачи:

int X = word_module;
    int SIZE = pow(2., X);
    int COMMON_SIZE = SIZE * X;
 
    int **array_by_x = (int **)malloc(SIZE * sizeof(int));
    for(int i = 0; i < SIZE; ++i)
    {
        array_by_x[i] = (int *)malloc(X * sizeof(int));
    }
// Генератор последовательности 000..0 000..1 ... 111..1
    for(int i = 0, j, cur_i; i < SIZE; ++i)
    {
        for(j = X - 1, cur_i = i; j >= 0; --j)
        {
            if(cur_i)
            {
                array_by_x[i][j] = cur_i & 1; // заталкиваем последний бит числа i в массив
                cur_i >>= 1; // переходим к следующему биту числа i
            }
            else
            {
                array_by_x[i][j] = 0;
            }
        }
    }
 
    /*for(int i = 0, j; i < SIZE; ++i)
    {
        for(j = 0; j < X; ++j)
        {
            fprintf(stdout, "%d", array_by_x[i][j]);
        }
        fprintf(stdout, " ");
    }*/
 
    int *array_common = (int *)malloc(sizeof(int) * (COMMON_SIZE));
 
    for(int i = 0, ii = 0, j; i < SIZE; ++i)
    {
        for(j = 0; j < X; ++j, ++ii)
        {
            array_common[ii] = array_by_x[i][j];
        }
    }
 
    fprintf(stdout, "\n");
     for(int i = 0; i < pow(2.,X)*X; ++i)
     {
         printf("%d %d* \n", array_common[i], i);
 
     }
Почему вывод начинается не с первого элемента, а с какого-то произвольного, но далее выводит все верно вплоть до последнего элемента.

Решение задачи: «Вывод в консоли начинается не с первого элемента, а с какого-то произвольного»

textual
Листинг программы
~/prog/c $ ./bits
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5
Похожие ответы