Программа перевода чисел в двоичный вид - C (СИ)

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

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

#include <stdio.h>
int main()
{
    int god, juk = 100, ut = 0;
    int yt[10] = {5, 5, 5, 5, 5, 5, 7, 8, 9, 0};
    int i;
    printf ("Введите число\n");
    scanf ("%d", &god);
    printf ("%d\n", god);
    while (juk > 0)
    {
        yt[ut] = god % 2;
        juk = god / 2; //5
        god = juk; //5
        ut++;
    }
    
    for (i = 9;i > 0;i--);
    {
        if (yt[i] < 2)
        {
            printf ("%d\n", yt[i]);
        }
    }
}
При запуске, и например если ввести число десять, программа пишет одно число это 0, а по должна писать 4 числа, почему она работает не так как надо?

Решение задачи: «Программа перевода чисел в двоичный вид»

textual
Листинг программы
void BinDec(char* bin, int size){
    int rez(0), i;
    std::cout<<"\nДесятичное число:\n< ";
    for(i = size - 1; i >= 0; --i)
        rez += (bin[i] - 48)<<i;
    std::cout<<rez<<std::endl;
    [B]delete [] bin;[/B]
}

Объяснение кода листинга программы

  1. В функции объявлены две переменные: rez типа int и i типа int.
  2. Переменная rez инициализируется значением 0.
  3. В цикле for перебираются элементы массива bin, начиная с последнего элемента и до первого.
  4. В каждой итерации цикла к переменной rez добавляется значение, полученное путем сдвига значения элемента массива bin влево на количество позиций, равное индексу элемента в массиве.
  5. После окончания цикла выводится значение переменной rez.
  6. Вызывается функция delete [] bin, которая освобождает память, выделенную под массив bin.

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


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

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

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