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