Перевод Из Сс

Тема в разделе "C/C++/C#", создана пользователем marina12, 15 фев 2013.

  1. marina12

    marina12 New Member

    Регистрация:
    15 фев 2013
    Сообщения:
    2
    Симпатии:
    0
    Задание - написать программу,которая переводила бы число типа unsigned char из десятичной СС в двоичную. Начала писать, используя операцию побитового сдвига, программа выдает правильный результат, но в конце выскакивает окно с ошибкой "debug error".Подскажите пожалуйста, в чем ошибка, заранее спасибо!(Знаю, что в scanf должно быть не %d, а %c (так как тип char), но когда правлю это, программа выдаёт неправильный результат, а ошибка "debug error" уже не выскакивает.
    Код (C++):
    #include "stdafx.h"
    #include <stdio.h>
    #include <math.h>
    int main()
    {
    unsigned char a;
    int c;
    printf("vvedite desyatichnoe chislo=");
    scanf("%d",&a);
    printf("dvoichnoe chislo=");
    for (int i=0;i<8;i++)
    {
    c=a;
    printf("%d",((c<<i)>>7)&1);
    }
    return 0;
    }
     
  2. Whatka

    Whatka Well-Known Member

    Регистрация:
    9 окт 2011
    Сообщения:
    433
    Симпатии:
    4
    да в scanf %c
    и в цикле замени c=a; на с=a-48;
    правильный результат для чисел меньше 9(это по твоему алгоритму)
     
Загрузка...

Поделиться этой страницей