Перевести целие числа из деятичной системы счисления в систему счисления с любым другим основанием - C (СИ)
Формулировка задачи:
Помогите. Сделал чтоб переводило из 10 в 1,2,3,4,5,6,7,8,9 .Вся проблема в том что я незнаю как поменять цифри например 11 на B ,12 на C итд.
#include <stdio.h> #include <conio.h> #define N 20 void convert(int n,int radix) { char a[N]; char s[7]={'A','B','C','D','E','F'}; int i,l=0; do {a[l++]=(char)(n%radix); n/=radix; } while (n!=0); for (i=l-1; i>-1; i--) printf("%d",a[i]); puts("\n_______________________________"); } void main() { int i,n,k,t; puts("How many numbers to put"); scanf("%d",&k); printf("Input %d integer numbers\n",k); for(i=0;i<k;i++) {scanf("%d",&n); puts("Convert 10 > ..."); scanf("%d",&t); convert(n,t); } getch(); }
Решение задачи: «Перевести целие числа из деятичной системы счисления в систему счисления с любым другим основанием»
textual
Листинг программы
#include <stdio.h> #include <conio.h> #define N 20 void convert(int n,int radix) { char a[N]; char s[7]={'A','B','C','D','E','F'}; int l=0;; do { a[l++]=(char)(n%radix); switch (a[l++]){ case 10:a[l++] =s[0];break; case 11:a[l++] =s[1];break; case 12:a[l++] =s[2];break; case 13:a[l++] =s[3];break; case 14:a[l++] =s[4];break; case 15:a[l++] =s[5];break; } n/=radix;} while (n!=0); for (int i=l-1; i>-1; i--) printf("%d",a[i]); puts("\n<br>"); } void main() { int j,k,t,n; puts("How many numbers to put"); scanf("%d",&k); printf("Input %d integer numbers\n",k); for(j=0;j<k;j++) {scanf("%d",&n); puts("Convert 10 > ..."); scanf("%d",&t); convert(n,t); } getch(); }
Объяснение кода листинга программы
Код выполняет перевод целых чисел из десятичной системы счисления в систему счисления с основанием, введенным пользователем. Список действий:
- Подключение необходимых библиотек.
- Объявление массивов для хранения чисел и их разрядов.
- Ввод количества чисел для обработки.
- Считывание чисел и их преобразование в другую систему счисления.
- Вывод результата.
- Получение обратной связи от пользователя (нажатие клавиши).