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

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

Восстановить пароль Регистрация
 
Серожка
0 / 0 / 0
Регистрация: 20.04.2010
Сообщений: 9
26.05.2010, 23:17     Найти в заданной стpоке максимальное двоичное число #1
Найти в заданной стpоке максимальное двоичное число и вывести его на экpан в десятичном виде.

Интересен метод отлова двоичных чисел и последующего перевода...
Заранее благодарен.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,693
27.05.2010, 02:38     Найти в заданной стpоке максимальное двоичное число #2
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;
}
Серожка
0 / 0 / 0
Регистрация: 20.04.2010
Сообщений: 9
27.05.2010, 16:50  [ТС]     Найти в заданной стpоке максимальное двоичное число #3
Спасибо большое!!!
А сложно будет в обычный Си перевести?
besh]<a
 Аватар для besh]<a
12 / 10 / 1
Регистрация: 02.11.2009
Сообщений: 194
27.05.2010, 17:15     Найти в заданной стpоке максимальное двоичное число #4
Mr.X,
C++
1
   for(;;)
ха-ха лол)
а что
C++
1
using namespace
не катит?
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
27.05.2010, 18:10     Найти в заданной стpоке максимальное двоичное число #5
Цитата Сообщение от besh
<a;758458]ха-ха лол)
чем тебе не угодили безусловные циклы?
Ramadan
0 / 0 / 0
Регистрация: 15.12.2011
Сообщений: 4
03.01.2012, 18:27     Найти в заданной стpоке максимальное двоичное число #6
а может кто-нибудь решение этой задачи в Си показать??

Добавлено через 32 минуты
ребят, очень нужно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2012, 21:45     Найти в заданной стpоке максимальное двоичное число
Еще ссылки по теме:

Найти максимальное число в последовательности C++
C++ Массив. Найти максимальное число
C++ Двумерный массив. Найти: максимальное из чисел, встречающихся в заданной матрице более одного раза

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
igorrr37
 Аватар для igorrr37
1594 / 1222 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
04.01.2012, 21:45     Найти в заданной стpоке максимальное двоичное число #7
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
 
int main()
{
    char* s = " 1000asr01k100 m1001";
    int max = INT_MIN, tmp, found = 0;
    for(; *s; ++s)
    {
        if(*s == '0' || *s == '1')
        {
            found = 1;
            tmp = strtol(s, &s, 2);
            if(tmp > max) max = tmp;
            --s;
        }
    }
    if(found) printf("%d\n", max);
    else puts("Not found");
    return 0;
}
Yandex
Объявления
04.01.2012, 21:45     Найти в заданной стpоке максимальное двоичное число
Ответ Создать тему
Опции темы

Текущее время: 04:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru