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

Распознать нули и единицы - C++

Восстановить пароль Регистрация
 
sergie2007
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 3
27.12.2010, 17:39     Распознать нули и единицы #1
Помогите написать задачку, очень надо))

00010001110 это условие
00010001010
00010001010
00010001110


и вот, что должно выйти на экран

1 111
1 1 1
1 1 1
1 111

распознать типо в условие эту единичку среди нулей и ноль среди нулей
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2010, 17:39     Распознать нули и единицы
Посмотрите здесь:

C++ Поставить в начало последовательности нули, а затем единицы
Поставить в начало последовательности нули, а затем единицы. C++
Дано целое число N и набор из N целых чисел, содержащий только нули и единицы. C++
C++ Массивы: поставить в начало последовательности нули, а затем единицы
Вывести в двоичном виде нули и единицы 01010110001 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
27.12.2010, 18:02     Распознать нули и единицы #2
?....?
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
27.12.2010, 18:17     Распознать нули и единицы #3
sergie2007, Обрабатывайте построчно, например так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
bool fl=false;
for(int i=0; i<(int)strlen(str); i++)
{
    if(fl && str[i]=='0')
    {
        fl=!fl;
        printf(" ");
    }
    if(str[i]=='1')
    {
        fl=true;
        printf("1");
    }
}
sergie2007
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 3
28.12.2010, 00:58  [ТС]     Распознать нули и единицы #4
в общем программу я написал, есть некоторые нюансы, нужна помощь в этом куске программы)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
char**mas=new char*[dlin];//Задаём двумерный массив
    for(i=0;i<dlin;i++) 
    mas[i]=new char[dlim];
 
    for(i=0;i<dlin;i++) {//Вводим элементы матрицы
        for(j=0;j<dlim;j++) {
            while(true) {
                cout<<"Введите элемент матрицы 0 или 1 ["<<i+1<<"]["<<j+1<<"]: ";
                cin>>mas[i][j];
                if (mas[i][j]=='1' || mas[i][j]=='0') break;
                else cout<<"Будьте внимательны при вводе! Вы ввели неверное значение!!!\n\n";
                    }
                }
            }
При таком коде требуется посимвольное введение данных, тогда программа выполняет свои функции, иначе если в строчку вбить больше 1го символа, то каждый символ автоматически записывается в последующую ячейку, ну или выводится столько ошибок ввода, сколько символов было введено подряд(ну или вперемешку). Я так понимаю это из за типа char. Подскажите как иправить.
http://i052.***********/1012/3c/52483ca45531.jpg
Хочу, чтобы если в строке написать даже стихотворение, то оно записывалось в одну ячейку. Ну и с числом тоже, чтоб если ввел 111, то вводилось не 1 1 1 в разные ячейки, а чтобы число 111 в одну.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
28.12.2010, 07:13     Распознать нули и единицы #5
Цитата Сообщение от sergie2007 Посмотреть сообщение
Хочу, чтобы если в строке написать даже стихотворение, то оно записывалось в одну ячейку. Ну и с числом тоже, чтоб если ввел 111, то вводилось не 1 1 1 в разные ячейки, а чтобы число 111 в одну.
В одну ячейку поместится только один символ. Может быть имели ввиду что в одну строку:
C++
1
2
3
4
5
6
7
8
9
10
    char**mas=new char*[dlin];//Задаём двумерный массив
        for(i=0;i<dlin;i++) 
        mas[i]=new char[dlim+1];
 
        for(i=0;i<dlin;i++) {//Вводим элементы матрицы
            {
                cout<<"Введите "<<dlim<< " элемент матрицы 0 или 1 ";
                cin>>mas[i];
            }
        }
sergie2007
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 3
28.12.2010, 08:00  [ТС]     Распознать нули и единицы #6
Нет, как же обьяснить...
Например:
Введите элемент [1][1], если я введу 1 выползит сообщение Введите элемент [1][2].
А если я введу 111 то сто одиннадцать запишется не в ячейку [1][1], а по единице сразу в [1][1] [1][2] [1][3], и меня попросят сразу же ввести [1][4]...а мне надо чтобы в одну ячейку, допустим [1][1],записывалось число любой длинны, или текст любой длинны. Как то так.
solar_wind
 Аватар для solar_wind
740 / 731 / 39
Регистрация: 06.07.2009
Сообщений: 2,937
Завершенные тесты: 1
28.12.2010, 08:08     Распознать нули и единицы #7
sergie2007, В данной программе все введеные символы будут идти друг за другом
mas[i][j] это конкретный элемент
mas[i] это ссылка на последовательность элементов, если хотите что бы она воспринималась как строка, поставьте в последнюю ячейку mas[i][длина строки] символ '\0'
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
28.12.2010, 09:44     Распознать нули и единицы #8
sergie2007, Давайте еще раз.
Есть вводимые данные, например:
00010001110
00010001010
00010001010
00010001110
Что куда должно записаться?
Или Вам без разницы, что куда должно записываться, а самое главное что должно выполняться вот это?:
00010001110 это условие
00010001010
00010001010
00010001110


и вот, что должно выйти на экран

1 111
1 1 1
1 1 1
1 111
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2010, 22:05     Распознать нули и единицы
Еще ссылки по теме:

C++ Отсортировать массив таким образом, чтобы все нули находились в начале, а единицы — в конце массива
Сформировать массив В, элементами которого являются нули и единицы C++
Заменить в тексте все нули единицами, а единицы нулями C++

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

Или воспользуйтесь поиском по форуму:
Mr.X
Эксперт С++
 Аватар для Mr.X
2803 / 1579 / 247
Регистрация: 03.05.2010
Сообщений: 3,669
28.12.2010, 22:05     Распознать нули и единицы #9
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
//////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <ctime>
#include <cstdlib>
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
//////////////////////////////////////////////////////////////////////////////////////
typedef std::string       T_str;
typedef std::vector<int>  T_int_nums;
//////////////////////////////////////////////////////////////////////////////////////
struct  T_gen_0_or_1
{
    char operator() ()
    {
        return  rand() % 2 + '0';
    }
};
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    srand(static_cast<unsigned>(time(0)));
 
    const int  STRING_LEN = 20;
    
    T_str  s(STRING_LEN, 0);
    std::generate(s.begin(), s.end(), T_gen_0_or_1());
    std::cout << s
              << std::endl;
 
    std::replace(s.begin(), s.end(), '0', ' ');
 
    std::cout << s
              << std::endl
              << std::endl;
 
    std::istringstream  ssin(s);    
 
    std::istream_iterator<T_str>  s_beg(ssin);
    std::istream_iterator<T_str>  s_end;
 
    std::copy(s_beg, s_end, std::ostream_iterator<T_str>(std::cout, " "));    
    std::cout << std::endl;    
}
Yandex
Объявления
28.12.2010, 22:05     Распознать нули и единицы
Ответ Создать тему
Опции темы

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