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

Бинарное дерево без дерева C++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сформировать из исходной строки три новых http://www.cyberforum.ru/cpp-beginners/thread1305394.html
Дана строка s, состоящая из одного или нескольких слов. Сформировать три строки, записав в первую из них все слова строки s, которые являются записью целых чисел (десятичных, восьмеричных или шестнадцатеричных), во вторую – слова, представляющие собой запись вещественных чисел, а в третью – все остальные слова. В новых строках слова разделять одним пробелом. Под словом понимать любую...
C++ Из массива mxn получить массив произведений самых длинных подпоследовательностей Дан действительный массив размера mxn, где m и n – натуральные числа. Получить последовательность b1, b2,..., bn, где bk – это произведение самой длинной подпоследовательности из положительных элементов k-й строки, k = 1, 2, …, m.Если таких элементов в строке нет – результат 0. Воспользоваться динамическими массивами и продемонстрировать работу с указателями. Объясните как делать? http://www.cyberforum.ru/cpp-beginners/thread1305391.html
C++ Строки
Помогите с ошибкой.Почему вместо все строки выводит лиш 1 слово? #include "stdafx.h" #include <conio.h> #include <iostream> #include <Windows.h> using namespace std;
C++ Вычислить и вывести на экран значение функции
Вычислить и вывести на экран значение функции. Значения переменных а и b вводяться с клавиатуры. z=ea+b-ea-b+lg |x-ab| где x=a*b+a2/(дробь)b Напишите пожалуйста КОД Программы
C++ Проверка на ввод клавиши enter http://www.cyberforum.ru/cpp-beginners/thread1305371.html
добрый день, помогите советом. для лабораторной работы требуется написать приложение - калькулятор, я использовал бесконечный цикл while для повторного использования калькулятора, однако хотелось бы улучшить один момент, после вывода на экран надписи "To continue, press enter , to exit press q" если нажимать enter, то приходится нажимать эту клавишу несколько раз для перехода на следующую...
C++ Вычислить количество негативних и положительных компонентов массива Помогите пожалуйста написать программу в Visual Studio Составить схему алгоритма для вычисления 30 значений функции у = ах2 + bx + c на отрезке , сохранить их в массиве y. Вычислить количество негативних и положительных компонентов массива. Алгоритм: http://hkar.ru/wzvU подробнее

Показать сообщение отдельно
samohodkin
Сообщений: n/a
19.11.2014, 20:28     Бинарное дерево без дерева C++
На вход подается описание бинарного дерева. На листьях (висячих вершинах) этого дерева написаны целые числа (от -106 до 106). Идем от корня дерева, случайно поварачивая направо или налево (с вероятностями 0.5).

Чему равно cреднее значение числа на листе, в который мы в конечном счете придем? Ответ вывести с точностью до двух знаков после запятой.

Грамматика дерева:

tree -> leaf

tree -> (tree tree)

leaf -> integer

Можно решить без дерева, т.к подаваться будет что-то типа: (21 32(1 1))

вот мое решение:
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
43
44
45
46
47
#include <iostream>
#include <stack>
#include <string>
#include <stdlib.h>
#include <ctype.h>
#include <cmath>
 
 
        using namespace std;
    int main() {
        
        string str, st;
 
        int index = 0, k = 0;
        double s = 0, res = 0;
        
        char chr;
        getline(cin, str);
 
        while (index < str.length())
        {
            chr = str[index];
 
            if ((chr != '(') && (chr != ')' && (chr != ' ')))
            {
                st = chr;
                k = atoi(st.c_str()); 
                res = res + k*pow(0.5, s);
            }
 
            if (chr == '(')
            {
                s = s + 1;
 
            }
            if (chr == ')')
            {
                s = s - 1;
 
            }
            
 
            index++;
        }
        cout << round(res * 100) / 100.;
        
    }
Только вот в моем решение k это всегда цифра, а оно должно быть числом, т.е для привеенного выше примера k=21;k=32,k=1. Никак не получается это реализовать. Помогите, пожалуйста.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru