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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ обработка текста http://www.cyberforum.ru/cpp-beginners/thread691997.html
Прочитать из текстового файла строку (имя файла и номер строки вводятся с клавиатуры) и вывести из нее на экран слова в соответствии со следующим алгоритмом: сначала - самое короткое слово, потом -домена на один символ и т.д.
C++ наследование классов Есть базовый класс class List { protected: struct Element { char name; int n_bus; int n_mar; http://www.cyberforum.ru/cpp-beginners/thread691996.html
Подобрать к заданному числу ранвую или близкую по значению переменную C++
Вобщем есть 10 переменных. Пользователь задает число Н и к нему подбирается равная либо большая (максимально к нему близкая) по значению переменная. Как это осуществить в плане кода?
Метод Ньютона C++
Найдите, пожалуйста, ошибку! #include <stdio.h> #include <math.h> #include <stdlib.h> #include <iostream> #include <conio.h> #pragma hdrstop using namespace std; //---------------------------------------------------------------------------
C++ Найти решение системы линейных уравнений http://www.cyberforum.ru/cpp-beginners/thread691959.html
привет всем, пожалуста помогите составить программу или испроваить ошибки в моей условие задачи даны действительные числа a,b,c,d,e,f. Выяснить верно ли, что |a*b-b*d|>0.0001, и если верно то найти решение системы линейных уравнений ax+by+c=0 dx+ey+f=0 моя прога #include<iostream> #include<stdlib.h> #include<math.h>
C++ Определить,принадлежит ли точка с координатами Х,У заштрихованной части плоскости Ребят выручайте, ну прям очень надо. Осталось выполнить последнее задание, знаю для вас это очень просто. Заранее огромное спасибо!!! Задание звучит так: Даны целые числа Х,У. Определить, принадлежит ли точка с координатами (Х,У) заштрихованной части плоскости. Составить математическую модель, алгоритм и программу подробнее

Показать сообщение отдельно
sobykey
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 18

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

08.11.2012, 12:45. Просмотров 227. Ответов 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();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru