Перевод из 10 в 16 систему счисления (ошибка в коде) - C (СИ)

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

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

Здравствуйте! Нужно перевести вводимое число из 10-ой в 16-ую систему исчисления, используя алгоритм вычисления остатков от деления. Программа компилируется, но выдает не верный результат, все время нули. Пожалуйста, помогите найти ошибку.
#include <stdio.h>
#include <conio.h>
main()
{
clrscr();
const int n=8;
int a[n], b, i;
printf("vvedit:");
scanf("%d", &b);
  for (i=n; i>0; i--)
    {
    a[i] = b%16;
    b=b/16;
switch(a[i])
{
case 0:printf("0");continue;
case 1:printf("1");continue;
case 2:printf("2");continue;
case 3:printf("3");continue;
case 4:printf("4");continue;
case 5:printf("5");continue;
case 6:printf("6");continue;
case 7:printf("7");continue;
case 8:printf("8");continue;
case 9:printf("9");continue;
case 10:printf("A");continue;
case 11:printf("B");continue;
case 12:printf("C");continue;
case 13:printf("D");continue;
case 14:printf("E");continue;
case 15:printf("F");continue;
}
}
getch();
}

Решение задачи: «Перевод из 10 в 16 систему счисления (ошибка в коде)»

textual
Листинг программы
#include <stdio.h>
main()
{
  const int n=8;
  char a[n+1];
  a[n]=0;
  int b, i;
  printf("vvedit:");
  scanf("%d", &b);
  for (i=n-1; i>=0; i--, b/=16)
    a[i] = (b%16 < 10) ?  b%16+'0' : b%16 - 10 + 'A';
  printf ("%s\n", a);
}

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

  1. Подключение заголовочного файла стандартного ввода/вывода (stdio.h).
  2. Объявление функции main().
  3. Объявление константы n со значением 8.
  4. Объявление массива a типа char с размером n+1.
  5. Установка значения a[n] равным 0.
  6. Объявление переменной b типа int и переменной i типа int.
  7. Вывод сообщения vvedit: и запрос ввода значения переменной b с помощью функции scanf().
  8. Начинается цикл for, который начинается с i=n-1 и выполняется до i>=0, уменьшаясь на 1 при каждой итерации и разделяя b на 16.
  9. Внутри цикла присваивается значение a[i] равным (b%16 < 10) ? b%16+'0' : b%16 - 10 + 'A'.
  10. Вывод строки, представляющей собой массив a, с помощью функции printf().
  11. Конец функции main().

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


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

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

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