Ошибка при переводе десятичного числа в двоичное - C (СИ)

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

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

Доброго времени суток, помогите найти ошибку в программе, которая должна переводить десятичные числа в двоичное.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int a,rez, trs, i, j, k, m[8];
    printf("vvedit maksimalne 4islo");
    scanf("%i", &a);
    for(i=0;i<8;i++)
    m[i]=0;
    rez=2;
    for(i=0;i<a;i++)
    {
        printf("%i-------->", i);
        for(j=0;rez>1;j++)
        {
        rez=i/2;
        trs=i-rez;
        m[7-j]=trs;
        }
        for(k=0;k<8;k++)
        printf("%i", m[k]);
        printf("\n");
    }
}
При исполнении абсолютно все числа будут представлены как ноль(00000000).

Решение задачи: «Ошибка при переводе десятичного числа в двоичное»

textual
Листинг программы
#include <stdio.h>
 
dectobin(int number, int massiv[])
{
  int i;
  for (i=15;i>=0;i--)
    {
 
        if( (number%2)==1 )
            {
                massiv[i]=1;
            }
        else
            {
                massiv[i]=0;
            }
      number=number/2;
    }
for (i=0;i<16;i++)    //вывод
    {
        if ( (i!=0)&& (i%4)==0 )
        {
            printf(" ");
        }
      printf("%d",massiv[i]);
    }
 
}
 
main ()
{
int mas[16],i,a;
scanf("%d",&a);
for(i=0;i<=a;i++)
{
    printf("%d --> ",i);
    dectobin(i,mas);
    printf("\n");
}
}

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

  1. Включаем файл со стандартными функциями для работы с файлами и стандартным вводом/выводом (stdio.h).
  2. Определяем функцию dectobin, которая принимает два аргумента: целое число и массив.
  3. Внутри функции объявляем переменную i типа int для цикла.
  4. Запускаем цикл for от 15 до 0 с шагом -1.
  5. Внутри цикла проверяем остаток от деления числа на 2 и сохраняем результат в массив.
  6. После цикла выводим массив с помощью функции printf, добавляя пробел после каждого четвёртого элемента.
  7. В функции main объявляем массив mas[16], переменные i и a типа int.
  8. Считываем число с помощью функции scanf в переменную a.
  9. Запускаем цикл for от 0 до a.
  10. Внутри цикла выводим число, приглашаем ввести данные и вызываем функцию dectobin.
  11. В конце цикла добавляем символ новой строки \n.
  12. В конце программы добавляем точку с запятой.

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


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

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

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