Разработать конвертер перевода из десятичной системы счисления в восьмиричную и двоичную - C (СИ)

  1. Здравствуйте .Помогите пожалуйста написать программу перевода Десятичной СС в другие системы


textual

Код к задаче: «Разработать конвертер перевода из десятичной системы счисления в восьмиричную и двоичную - C (СИ)»

#include <stdio.h> 
 
int whole(int number, int Q) 
{ 
    int temp = 0; 
    int X = 1; 
 
    while (number != 0) 
    { 
        temp = temp + (number % Q) * X; 
        X *= 10; 
        number /= Q; 
    } 
    return temp; 
} 
 
double fract(float number, int Q, int N) 
{ 
    int temp_whole = 0; 
    float temp_fract = number - (int) number; 
    int temp_sum; 
    int st = 1; 
    while(N) 
    { 
        temp_fract *= Q; 
        temp_sum = temp_fract; 
        temp_whole = temp_whole * 10 + temp_sum; 
        temp_fract = temp_fract - temp_sum; 
        st *= 10; 
        N--; 
    } 
    temp_fract = temp_whole; 
    temp_fract /= st; 
    return temp_fract; 
} 
 
int main() 
{ 
    float number; 
    int Q;
    printf("Enter a number - ");
    scanf("%f",&number);
    printf("Enter the new scale of notation - ");
    scanf("%d",&Q);
    int N = 6; 
    int whole_part; 
    double fract_part;
    whole_part = whole(number,Q);
    fract_part = fract(number,Q,N);
    fract_part = whole_part + fract_part; 
    printf("%f\n",fract_part); 
}

СДЕЛАЙТЕ РЕПОСТ

11   голосов, оценка 4.182 из 5



Похожие ответы
  1. Не получается разработать алгоритм вычисления значения переменной y по заданной формуле для вводимых значений переменных a, b и с. Алгоритм представить в виде программы для ЭВМ на алгоритмическом языке Си.

  1. Разработать программу построения графика функции y=x-1/(3+sin3.6x), интервал: x=[0;0.85] на Си, желательно с блок-схемой

  1. Разработать функцию map, которая позволяет все отрицательные значения заменить на те же положительные значения в массиве целых чисел. Функция map получает в качестве аргументов массив, его размер, указатель на функцию cut. Функция cut применяется ко всем элементам массива внутри функции map. Функция cut получает в качестве аргумента указатель на целое число, и, если это число оказывается отрицательным оно заменяется на тоже положительное число. Протестировать разработанную функцию map.

  1. Здравствуйте! Помогите пожалуйста! Имеется связной список, который содержит целые числа. Нужно сформировать на основе списка бинарное дерево поиска, а также нужно разработать функцию удаления из дерева всех узлов, содержащих отрицательные значения.Очень нужна ваша помощь!!!Добавлено через 6 часов 28 минут Забыл код:C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 #include "stdafx.h" #include using namespace std;   struct node {     int key;     node* lft;     node* rgt;     node(int key) : key(key), lft(0), rgt(0)     {     }     ~node()     {         delete lft;         delete rgt;     }     bool isleaf() const     {         return (lft == rgt) && (lft == NULL);     } };   node* destroy(node *n) {     //  дерево состоит из одной вершины     if (n->isleaf())     {         delete n;         return 0;     }     else         //  левое поддерево пусто         if (n->lft == 0)         {             //  сохраняем указатель на правое поддерево             node* r = n->rgt;             //  копируем состояние узла находящегося справа             *n = *r;             //  удаляем узел             r->lft = 0;             r->rgt = 0;             delete r;         }         else             //  левое поддерево не пусто         {             //  ищем узел являющийся самым правым в левом поддереве             //  самый правый узел             node *c = n->lft;             //  родитель самого правого узла             node *p = n->lft;               //  двигаемся по правой ветви левого поддерева             while (c->rgt)             {                 p = c;                 c = c->rgt;             }               //  левое поддерево самого правого узла становиться правым поддеревом родителя             p->rgt = c->lft;             //  рвем отношение             c->lft = NULL;             //  переносим ключ             n->key = c->key;             //  удаляем самый правый узел             delete c;         }     return n; }   node* remove(node *n, int key) {     //  если достигли листа, то узла с данным ключем не существует     if (n == NULL)         return 0;     //  если ключ текущего узла меньше искомого     if (n->key < key)     {         //  идем по правой ветке         n->rgt = remove(n->rgt, key);         return n;     }     else         //  если ключ текущего узла больше искомого         if (key < n->key)         {             //  идем по левой ветке             n->lft = remove(n->lft, key);             return n;         }     //  ключ текущего узла равен искомому     return destroy(n); }   void print(node *n, int l = 0) {     if (n)     {         print(n->rgt, l + 2);         std::cout << std::string(l, ' ') << n->key << '\n';         //printf(" %s \n", n->key,);         print(n->lft, l + 2);     } }   int main() {     // исходное дерево     node *tree = new node(10);     tree->lft = new node(5);     tree->lft->rgt = new node(8);     tree->lft->rgt->lft = new node(6);     tree->rgt = new node(15);     // исходное дерево     print(tree);     // последовательно удаляем каждый элемент дерева     remove(tree, 10);     print(tree);     tree = remove(tree, 6);     print(tree);     tree = remove(tree, 5);     print(tree);     tree = remove(tree, 8);     print(tree);     tree = remove(tree, 15);     print(tree);     delete tree;       return 0; }

  1. Разработать проект для обработки дерева поиска, каждый элемент которого содержит целочисленный ключ и строку текста, содержащую, например, ФИО и номер паспорта (ввод исходной информации рекомендуется записать в файл). В программе должны быть реализованы следующие возможности: -создание дерева -добавление новой записи -поиск информации по заданному ключу -удаление информации с заданным ключом -вывод информации -удаление из левой ветви дерева узел с максимальным значением ключа и все связанные с ним узлы Язык Си

  1. Разработать функции работы с приоритетной очередью. Постановка запросов в очередь выполняется по прио-ритету, снятие - подряд из старших адресов (конец очереди). Приоритет: мin значение числового параметра, при совпадении параметров - LIFO

  1. Конвертер валют. Если выберу "б", все равно проходит цикл а. Что не так?C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 #include int main(void){       char a,b,c;     a= 'a';     b='b';     c='c';     int ab, ac, ba,bc, ca,cb;     int zl, dol, eu;     int sum1, sum2, sum3, sum4, sum5, sum6;         printf("Program konwertacji walut");     printf("Wybierz walute dla konwertacji:\n");     printf("a.Zlotowki\n");     printf("b.Dolary\n");     printf("c.Euro\n");         if(scanf("%c", &a)){           printf("Wybierz w co konwertowac:\n");         printf("1.dolary\n");         printf("2.euro\n");         scanf("%i", &zl);             if(zl == 1){            printf("Podaj kwote w zlotych:\n");            scanf("%i",&ab);            sum1 = ab*3.72;            printf("%i w dolarach : %i", ab, sum1);         }         else if(zl == 2){              printf("Podaj kwote w zlotych:\n");             scanf("%i", &ac);             sum2 = ac*4.23;             printf("%i w euro : %i", ac, sum2);         }         else{             printf("Niepoprawnie !");         }     }          else if(scanf("%c", &b)){           printf("Wybierz w co konwertowac:\n");         printf("3.zlotowki\n");         printf("4.euro\n");         scanf("%i", &dol);             if(dol == 3){            printf("Podaj kwote w dolarach:\n");            scanf("%i", &ba );            sum3 = ba*3.71;            printf("%i w zlotowkach : %i", ba, sum3);         }         else if(dol == 4){             printf("Podaj kwote w dolarach:\n");             scanf("%i", &bc);             sum4 = bc * 1.13;             printf("%i w euro : %i", bc, sum4);         }         else{             printf("Niepoprawnie !");         }             }      else if(scanf("%c", &c)){         printf("Wybierz w co konwertowac:\n");         printf("1.zlotowki\n");         printf("2.dolary\n");         scanf("%i", &eu);              if(eu == 1){            printf("Podaj kwote w euro:\n");            scanf("%i",&ca);            sum5 = ca*4.23;            printf("%i w zlotowkach : %i", ca, sum5);         }         else if(eu == 2){             printf("Podaj kwote w euro:\n");             scanf("%i",&cb);             sum6 = cb*1.13;             printf("%i w dolarach : %i", cb, sum6);         }            else{              printf("Niepoprawnie !");          }       }     else{         printf("Prosze podac jedna litere: ");     }     return(0); }

  1. Надо составить программу пересчёта денег в рублях в валюту по выбору(доллары, евро, фунты) Исходные данные : курс валюты и сумма в рублях . Желательно с комментариямиДобавлено через 2 часа 48 минут Ребята Up

  1. Разработать программу учета жилищного фонда. Данные о жилом фонде хранить в виде массива структур. Итоговая информация должна выводиться на экран в виде таблицы, отсортированной по номеру жилищного договора. (Листинг кода программы должен быть с комментариями) Помогите , пожалуйста