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

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

Войти
Регистрация
Восстановить пароль
 
sobykey
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 18
#1

Поиск двух групп наименьших слов - C++

08.11.2012, 12:45. Просмотров 228. Ответов 0
Метки нет (Все метки)

Задача такая: выделить две группы самых коротких слов, отобразить их на экране.
Т.е. пользователь с клавиатуры вводит текст (предложение). Программа разбивает это предложение на слова, находит наименьшее слово. Если есть еще слова такой-же длины, то это будет первая группа наименьших слов. Потом ищем следующее, большее по длине, слово. И точно так-же ищем слова такой-же длины - это будет вторая группа наименьших слов.
Вот код, программа корректно не работает. Подскажите, что не так.
Кликните здесь для просмотра всего текста
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
55
56
57
58
59
60
61
62
#include <iostream>
using namespace std;
const int n = 100; //инициализация константы длины текста
 
int main()
{
    char str[n]; //инициализация текстового массива из n элементов
    char* ptr; //инициализация указателя типа char
    char matrix[10][n]; //инициализация двумерного массива
    int count = 0; //инициализация счетчика
    int j, i; //инициализация переменных цикла
    int g;
    int s1=0,s2=0;
    
    cout << "Enter the text " << endl;
    cin.getline(str, n);
 
    ptr = strtok(str, " ,.-!?");
    //cout<<ptr;
    while(ptr != NULL)
    {
        strcpy(matrix[count++], ptr);
        ptr = strtok(NULL, " ,.-!?");
    }
 
    for(i = 0; i < count - 1; i++)
        for (j = 0; j < count - 1; j++)
        {
            if(strlen(matrix[j]) > strlen(matrix[j+1]))
            {
                char temp[20];
                strcpy(temp, matrix[j]);
                strcpy(matrix[j], matrix[j+1]);
                strcpy(matrix[j+1], temp);
            }
        }
        g=strlen(matrix[0]);
        for(j=0;j<10;j++)
        {
            if(strlen(matrix[j])==g)
                s1++;
        }
        do
        {
            g++;
            for(j=0;j<10;j++)
            {
                if(strlen(matrix[j])==g)
                    s2++;
            }
        }
        while(s2!=0);
 
        cout<<"The first group of the smallest words '";
        for(j=0;j<s1;j++)
            cout<<matrix[j]<<" "<<endl;
        cout<<"The first group of the smallest words '";
        for(j=s1+1;j<s1+s2;j++)
            cout<<matrix[j]<<" "<<endl;
 
        cin.get();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2012, 12:45     Поиск двух групп наименьших слов
Посмотрите здесь:

Поиск наименьших двух элементов массива или алгоритм Хаффмана - C++
Приветствую! Дали задачу, сделать прогу в котором изначально есть массив из 12 элементов a1, a2...an с разными вероятностями, общая...

Найти произведение двух наибольших и двух наименьших отрицательных нечетных чисел массива - C++
Найти произведение двух наибольших и двух наименьших отрицательных нечетных чисел массива Дана последовательность из n различных целых...

Определить в последовательности целых чисел сумму двух наибольших и сумму двух наименьших - C++
Напишите программу, которая в последовательности целых чисел определяет сумму двух наи- больших и сумму двух наименьших. Программа должна...

Поиск групп символов - C++
Добрый день. Начал изучать С++ не так давно поэтому сталкиваюсь с некоторыми трудностями в обучении. Собственно недавно получил задание...

Определить значения двух наименьших элементов вектора - C++
С клавиатуры ввести вектор целых чисел. Определить значения двух наименьших элементов вектора. Если они не одинаковые, то заменить эти...

Найти произведение двух наименьших из трёх заданных чисел - C++
Даны три числа. Найти произведение двух наименьших из них.

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

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

Выяснить, верно ли, что в данном тексте больше групп букв, чем групп знаков - C++
Дан текст, каждый символ которого может быть малой буквой, цифрой или одним из знаков +,-,*. Группой букв будем называть такую совокупность...

Все совершённые числа из двух массивов переписать в третий массив и найти четыре наименьших элемента - C++
Человек не может в C++. Заданы массивы целых чисел X(n) и Y(k). Все совершённые числа из этих массивов переписать в массив Z. В массиве Z...

Составить программу, запрашивающую у пользователя три разных целых положительных числа и находящих сумму двух наименьших из них - C++
Составить программу, запрашивающую у пользователя три разных целых положительных числа и находящих сумму двух наименьших из них. ...

Есть строка, состоящая из групп нулей и единиц. Каждая группа отделяется друг от друга одним или несколькими пробелами. Найти и вывести на экран групп - C++
Есть строка, состоящая из групп нулей и единиц. Каждая группа отделяется друг от друга одним или несколькими пробелами. Найти и вывести на...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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