Форум программистов, компьютерный форум CyberForum.ru

Перевод чисел из 10очной системы счисления в 3ую - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ вычислить значение функции, используя ряд тейлора http://www.cyberforum.ru/cpp-beginners/thread692093.html
Написать программу на языке C в среде Microsoft Visual Studio 2010 C++, реализующую предложенное вариантом задание (вычислить значение функции, используя ряд тейлора). Исходные данные задаются путем ввода с клавиатуры. Ответ необходимо вывести на экран с описанием задания, входных и выходных данных. Программу необходимо написать с использованием функций. Цикл while. Заранее спасибо!
C++ Объекты и классы Добрый день . Помогите написать пожалуйста ... Пункт приема платежей за проезд по автостраде. Платеж составляет 50 рублей, но есть машины, которые проезжают бесплатно. Необходимо написать программу, которая выводила бы сумму платежей и общее количество проехавших машин. В конструкторе происходить задание начальных значений суммы и начальное общее количество поехавших машин. Метод solve()... http://www.cyberforum.ru/cpp-beginners/thread692083.html
Обходы графа C++
Ребят, помогите с курсачом по Дискретной математике. Задача у меня такая: Имеется N городов, соединенных сетью дорог. Заданы длины участков дорог между парами городов. Спроектировать структуру телефонной сети с минимальной стоимостью затрат на ее строительство, если считать, что стоимость участка сети между двумя городами пропорциональна расстоянию между ними. Правильно ли я понимаю, если...
Выражения из скобок C++
Построить все правильные скобочные выражения . На входе число - на выходе все строки Например 2 () 4 ()() (()) 6 ()()() ()(())
C++ Определить символ, встречающийся в тексте с максимальной частотой http://www.cyberforum.ru/cpp-beginners/thread692051.html
Дана строка длиной не более 80 символов, оканчивающаяся точкой. Нужно определить символ, встречающийся в тексте с максимальной частотой.
C++ Черепашья графика Текст задачи из учебника Дейтела: Язык Лого, особенно популярный среди пользователей персональных компьютеров, сделал знаменитой черепашью графику. Представьте себе механическую черепаху, которая ползает по комнате под управлением программы на C++. Черепаха несет пишущее перо, которое может находиться в одной из двух позиций - нижней или верхней. Если перо в нижней позиции, черепаха... подробнее

Показать сообщение отдельно
Croessmah
Модератор
Эксперт CЭксперт С++
13134 / 7397 / 828
Регистрация: 27.09.2012
Сообщений: 18,227
Записей в блоге: 3
Завершенные тесты: 1
11.11.2012, 14:31
Строчка 21 сразу не правильно.
Память эта нам еще нужна будет, а Вы её освобождаете.
Вставьте её перед return 0;

Добавлено через 7 минут
C++
1
2
int chislo; // Инициализайия переменной chislo.
int ostatok;// Инициализация переменной ostatok.
Это объявление переменных, а не инициализация.

Добавлено через 16 минут
Добавил несколько комментариев к Вашим.
C++
1
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
#include<iostream>
#include<locale.h>
using std::cout;// using namespace std; называется - раскрытием пространства имен. using std::cout;. Это единственный правильный способ, по двум причинам.
using std::cin; // 1. Не приходится переживать о перекрытии/смешении функций/классов с другим, открытым пространством имен.
using std::endl;// 2. при использовании нескольких библиотек в проекте, указание пространства имен, позволяет четко понимать, чьи классы/методы используются.
 
int main()
{
    setlocale(LC_ALL,"Rus"); // Способ вывода кириллицы в консоль. Нужно подключить заголовочный файл locale.h.
    int chislo; // Объявление переменной chislo,для хранения числа, введенного пользователем.
    cout<<"Введите число, которое необходимо перевести(из 10-ой в 3-ую): ";// Предложение которое отображается в окне консоли.
    cin>>chislo; // Ввод числа пользователем.
    int ostatok;// Объявление переменной ostatok, в которою будет записываться остаток от деления
    int *pRezults;// Oбъявление указателя *pRezults.
     int count=1; // Инициализация переменной count. В неё будет записано количество символов, необходимых для записи числа в троичной СС.
     int temp=chislo;// Инициализируется переменная temp и ей присваивается значение перенной chislo.
     //В данном цикле определяется сколько понадобится для записи числа в троичной системе счисления
      while(temp=temp/3){//Делим temp на основание системы в которую переводим число. Результат заносим в temp. Если результат деления 0 - то выход из цикла.
         ++count;} //Увеличиваем count (кол-во символов, необходимых для записи числа)
    pRezults=new int[count];//Вы деление памяти, для хранения цифр числа в троичной СС. pRezults указывает на начало блока выделенной памяти
    pRezults[0]=0;//pRezults[0] значение нулевого элемента массива (считая от нулевой позиции) и ему присваевается значение 0.
    temp=0;// Инициализируется переменная-счётчик temp и ей присваивается значение 0(начальное значение цикла while(ПОКА)).
    //В этом цикле происходит перевод числа. Если введено число 0, то цикл не выполниться, поэтому было сделано pRezults[0]=0
     while(chislo)//Заголовок(условие продолжения) цикла while. Условие chislo. Более одного оператора = фигурные скобки обязательны.
    {
        ostatok=chislo%3;//Переменной ostatok присваивается значение остатока от деления на 3 значения переменной chislo
        chislo= chislo/3;//Переменной chislo присваивается значение результата деления на 3 значения переменной chislo
        pRezults[temp++]=ostatok;//Остаток заносится в pZeluts[temp] и после этого temp увеличивается на 1. Можно разложить так:
          //pRezults[temp]=ostatok;
          //++temp;
    }
 //Выводим остатки от деления в обратном порядке.
    for(int i=count-1;i>=0;--i)//Для(
    {
        cout<<pRezults[i];//Выводится на экран результат вычисления
    }           
     cout<<endl;// Пропуск отображающей в окне строки следующая после вывода результата
     delete[] pRezults;//Любая динамическая память выделенная при помощи new[] должна освобождаться при помощи оператора delete[].
    cin.get();//Функция get() стандартного потока ввода cin заставляет систему ожидать ввода пользователем любого символа,
    cin.get();//оторый она считывает, и программа завершается. Проблема в том, что работает cin.get() далеко не всегда.
     return 0;//ноль возвращается в вызывающую функцию, когда программа была выполнена успешно. 
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru