Перевод из 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().
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д