Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Технологии > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 02.10.2011, 16:02   #1
Kirill Rus
Новичок
 
Регистрация: 02.10.2011
Сообщений: 1
Репутация: 10
По умолчанию Создание функций отображающих переданные им числа в той или иной системе исчисления(язык программирования "С").

Всем привет.
Есть задание:

На входе строка с числом в десятичной форме. Распознать строку в переменную типа int. На выходе строки с введенным числом в двоичной, восьмиричной и шестнадцатиричной форме printf("%s",char *).

Запрещено использовать такие операторы как pow, itoa, atoi.

Я решил начать с простого и написать программу только для перевода из 10 в 2, чтобы затем усложнять её, но у меня не получилось. Все время программа выводит разный ответ.

Вот мои 2 варианта программы перевода из 10 в 2:

1)
Код:

#include <stdio.h>
#include <conio.h>
#include <string.h>

void main()
{
      int i=0, dec = 0;
      char A[30];
      printf ("Vvedite dec: ");
      scanf ("%d", &dec);
      while (dec > 0)
      {
            A[i]=( dec % 2 )+48;
            dec = dec / 2;
            i++;
      }
       char A1[30];
       int dv = 0, k = 1, n = strlen(A);
       for (i=0; i<n-1; i++)
      {
       A1[i] = A[n-i-1];
       dv = dv + k * (A1[i] - '0');
       k = k*2;
      }
       printf ("%d\n", dv);
       getch();
}

2)
Код:

#include <stdio.h>
#include <conio.h>
#include <string.h>

int main()
{
      int i=0, dec, otv;
   char A[30];
      printf ("Vvedite dec: ");
      scanf ("%d", &dec);
      while (dec > 0)
      {
       A[i] = (dec % 2) + 48;
       dec = dec / 2;
       i++;
      }
      int k = 1, n = strlen(A);
      char A1[30];
      for (i=0; i<n-1; i++)
      {
       A1[i] = A[n-i-1];
      }
   for (i=0; i<n-1; i++)
   {
       otv = otv + k * (A1[i] - 48);
       k = k * 2;
   }
      printf ("%d\n", otv);
      printf ("%s\n", A1);
      printf ("%s\n", A);
      getch();
}

Помогите разобраться пожалуйста.

Последний раз редактировалось Stilet; 02.10.2011 в 17:07.
Kirill Rus вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу найти книгу Стивена Праты "Язык программирования C. Лекции и упражнения". Может есть у кого? Catharsis Общие вопросы C/C++ 0 10.06.2010 12:46
Напечатать текст, удалив из него все цифры и знаки "+" или "–". Язык С++. KaylasMKTY Помощь студентам 8 07.03.2010 22:35
PHP(или другой язык): Получить все пары "имя" -> "значение" переданные методом POST KingOfNothing PHP 4 12.04.2009 14:06


05:03.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru