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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 5.00
WizardHarry
0 / 0 / 0
Регистрация: 22.02.2012
Сообщений: 33
#1

Строки. Вывести на экран самую короткую группу из 0 и 1 - C++

19.09.2013, 21:38. Просмотров 3232. Ответов 4
Метки нет (Все метки)

Дана строка, состоящая из групп нулей и единиц. Найти и вывести на экран самую короткую группу.
Попроще только, без #include <algorithm> #include <iterator>, как в похожем вопросе здесь, такое еще не учили.
Заранее спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2013, 21:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки. Вывести на экран самую короткую группу из 0 и 1 (C++):

Строки. Вывести на экран самую короткую группу из 0 и 1. - C++
Помогите плз написать код. Дана строка, состоящая из групп нулей и единиц. Найти и вывести на экран самую короткую группу.

В строке, состоящей из групп нулей и единиц, найти и вывести на экран короткую группу - C++
В строке, состоящей из групп нулей и единиц, найти и вывести на экран короткую группу. Прога виводит только один сивол. Когда вводишь 111...

Открыть заданный текстовый файл, найти в нем и вывести на экран самую короткую строку - C++
Открыть заданный текстовый файл, найти в нем и вывести на экран самую короткую строку. Что не так, подскажите, пожалуйста! #include...

Дано три строки. Определить самую длинную и короткую - C++
Всем привет. Вот полное задание: &quot;Введи с клавиатуры 3 строки в самой длинной поменяй первое слово с последним и выведи, а в самой короткой...

Определить самую длинную и самую короткую из введенных строк - C++
Необходимо организовать ввод 3 названия городов. А потом вывести на экран консольно самое длинное и короткое название города. Лезут ошибки...

Структура: Для заданного автора вывести на экран его самую раннюю книгу и самую последнюю - по году издания. - C++
Дан массив записей, содержащий сведения о книгах: фамилия автора, название книги, год издания книги. Для заданного автора найти и вывести...

4
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
22.09.2013, 10:33 #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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
int main(int argc, char* argv[])
{
    char str[256] = "000011111000011100000111111100000111111110000001111111\0";
 
    int max = 256, max_pos = 0;
    for (int i = 0; str[i] != '\0'; i++)
    {
        int k = i;
        while (str[i] == str[i+1] && 
            str[i] != '\0') i++;
 
        int len = abs((k+1)-i);
        if (len < max) { max = len; max_pos = k; } 
    }
 
    printf("str = %s\nmax_pos = %d max_len = %d\n",str,max_pos,max);
 
    _getch();
 
    return 0;
}
http://codepad.org/yHDAPRC6
1
Миниатюры
Строки. Вывести на экран самую короткую группу из 0 и 1  
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
22.09.2013, 11:22 #3
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
 
int main(int argc, char* argv[])
{
    char str[256] = "0000 11111 0000 111 00000 1111111 00000 11111111 000000 1111111\0";
 
    int max = 256, max_pos = 0;
    for (int i = 0; str[i] != '\0'; i++)
    {
        if (isspace(str[i]) || str[i+1] == '\0')
        {
            int k = i-1;
            while (k >= 0 && !isspace(str[k])) k--;
            if (abs((k+1)-i) < max) { max = abs((k+1)-i); max_pos = k+1; }
        }
    }
 
    printf("str = %s\nmax_pos = %d max_len = %d\n",str,max_pos,max);
 
    _getch();
}
http://codepad.org/NDyJxa9j
1
Миниатюры
Строки. Вывести на экран самую короткую группу из 0 и 1  
WizardHarry
0 / 0 / 0
Регистрация: 22.02.2012
Сообщений: 33
22.09.2013, 12:01  [ТС] #4
zitxbit, Благодарю)
0
kravam
быдлокодер
1704 / 891 / 45
Регистрация: 04.06.2008
Сообщений: 5,508
22.09.2013, 15:45 #5
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
#include <stdio.h>
#include <string.h>
 
int main ()
{
    char* p= (char*)"1111000001111000111110000000111110000000011111100000000";
 
    //Длина минимальной цепочки
    int min= strlen (p);
    
    //Указатель на нужную цепочку
    char* ts= p;
    
    //Количество символов в цепочке (промежуточная переменная)
    int kol_vo;
    
    while (*p) {
 
          
        //В этой точке p указывает на нулевой символ (0 или 1) очередной цепочки
        kol_vo= 0;
        do {
          kol_vo++; p++;
        }
        while (*p== *(p- 1));
        
       //Одним махом разберёмся с длиной цепочки и указателем на неё 
       if (kol_vo< min) 
          ts= p-(min= kol_vo);
    }
    
    
    //вывод    
    for (int i= 0; i< min; i++) printf ("%c", ts[i]); 
    
 
    getchar ();
    return 0;
}
1
22.09.2013, 15:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2013, 15:45
Привет! Вот еще темы с ответами:

Вывести все введенные строки. Отсортировать строки. Вывести самую длинную строку - C++
Здравствуйте!!! Помогите пожалуйста, не могу разобраться с программой. Ввести с клавиатуры строки, пока не будет введено 5 строк, которые...

Удалить из массива строк самую короткую строку - C++
Сформировать массив строк разной длины. Удалить из него самую короткую строку.

Определить самую короткую строку текстового файла - C++
помогите пожалуйста

Найти самую короткую последовательность с правильной расстановкой скобок - C++
Дана последовательность скобок, содержащая скобки четырех видов: (), , {}, &lt;&gt;. Требуется найти самую короткую последовательность с...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru