Форум программистов, компьютерный форум 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++
Построить все правильные скобочные выражения . На входе число - на выходе все строки Например 2 () 4 ()() (()) 6 ()()() ()(())
Найти количество всех положительных элементов массива C++ Builder
Добрый день! У меня еще появился вопросик по нахождению количества всех положительных элементов массива. Массив задается через StringGrid, все ячейки заполняются нормально, генерируется на ура. но вот когда по кнопке пытаюсь найти количество всех положительных элементов массива, выдает разные числа, которые не соответствуют действительности, иногда даже больше чем общее число элементов массива....
C++ Определить символ, встречающийся в тексте с максимальной частотой http://www.cyberforum.ru/cpp-beginners/thread692051.html
Дана строка длиной не более 80 символов, оканчивающаяся точкой. Нужно определить символ, встречающийся в тексте с максимальной частотой.
C++ Черепашья графика Текст задачи из учебника Дейтела: Язык Лого, особенно популярный среди пользователей персональных компьютеров, сделал знаменитой черепашью графику. Представьте себе механическую черепаху, которая ползает по комнате под управлением программы на C++. Черепаха несет пишущее перо, которое может находиться в одной из двух позиций - нижней или верхней. Если перо в нижней позиции, черепаха... подробнее

Показать сообщение отдельно
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11821 / 6800 / 769
Регистрация: 27.09.2012
Сообщений: 16,876
Записей в блоге: 2
Завершенные тесты: 1
11.11.2012, 14:31     Перевод чисел из 10очной системы счисления в 3ую
Строчка 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;//ноль возвращается в вызывающую функцию, когда программа была выполнена успешно. 
}
 
Текущее время: 19:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru