С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Найти в заданной стpоке максимальное двоичное число - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не коректная работа http://www.cyberforum.ru/cpp-beginners/thread136295.html
Вот код #include<iostream.h> #include<conio.h> #include<math.h> #include<fstream.h> void main () { int i,y,x={2,-3,5,-1,4}; ofstream out_file("file1.dat"); for (i=0;i<5;i++)...
C++ Окно ошибки Делал на днях проект. Сегодня случайно удалил. Удалось почти все установить кроме нескольких вещей Не выводит должным образом окно ошибки. Если в полях ничего не вводить. Выводит окно. Если... http://www.cyberforum.ru/cpp-beginners/thread136294.html
C++ Графическая интерпритация алгоритмов сортировки
Нужно реализовать графическую интерпретацию работы алгоритмов сортировки. Сижу, ломаю голову не зная как к этому подступиться. Опыта по С++ мало, с алгоритмами более менее всё ясно. Побывал сделать...
Ошибка при вводе даных в файл C++
Компилируется прога хорошо, но почему то не вводимые слова не записываются в файл не понимаю что я не так сделала? #include "stdafx.h" #include <string.h> #include <locale.h> #include <stdlib.h>...
C++ Осуществить "вращение" квадрата вокруг его центра http://www.cyberforum.ru/cpp-beginners/thread136269.html
вот есть не сложная задачка для Си: Осуществить "вращение" квадрата вокруг его центра. кто сможет сделать такое,буду очень благодарен =)
C++ Выход за пределы массива Столкнулся со следующей проблемой. Ввожу по формату: N1 a..a N2 b..b N3 c..c Мой код при выполнении выдаёт ошибку. Выход за пределы массива (Access Violation). Не могу понять почему, и... подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
3051 / 1696 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
27.05.2010, 02:38
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
48
49
50
51
52
53
54
//Найти в заданной стpоке максимальное двоичное число и вывести его на экpан 
//в десятичном виде.
#include <string>
#include <algorithm>
#include <iostream>
#include <locale>
#include <iomanip>
 
typedef std::string  T_str;
 
long double  get_max_dvoichn_chislo(const T_str& str)
{
    bool         is_dv_chislo = false;
    long double  cur_num = 0;
    long double  max_num = 0;
    for(T_str::const_iterator str_it = str.begin(); str_it != str.end(); ++str_it)
    {        
        bool is_dv_dig = *str_it == '0' || *str_it == '1';
        //Если двоичная цифра, то:
        if(is_dv_dig)
        {
            if(!is_dv_chislo) is_dv_chislo = true;
            (cur_num *= 2) += (*str_it - '0');
        }
        //если не двоичная цифра, то:
        else if(is_dv_chislo)
        {
            is_dv_chislo = false;
            max_num = std::max(cur_num, max_num);
            cur_num = 0;            
        }//else
    }//for
    return std::max(cur_num, max_num);    
}
 
int main()
{
    std::locale::global(std::locale("rus"));
    T_str  str;
    for(;;)
    {
        std::cout << "Введите строку, содержащую запись двоичных чисел: "
                  << std::endl;        
        std::cin >> str;
        std::cout << "Максимальное двоичное число в строке в десятичном виде: "
                  << std::noshowpoint              
                  << std::setprecision(15)
                  << get_max_dvoichn_chislo(str)
                  << std::endl
                  << std::endl
                  << std::endl;
    }
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.