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

Нахождение кратчайших слов в каждой строке текста - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создание линейного списка http://www.cyberforum.ru/cpp-beginners/thread290482.html
Здравствуйте!!!!!! Помогите пожалуйста написать программку создание линейного спискаи распечатка линейного списка.Очен надо!!!! Заранее спасибо!!!
C++ Циклы Borland C++ Builder 3.1 Друзья помогите решить задачу с использованием циклов. Для любого действительного x вычислить значение f(x), где f - пеpиодическая функция с пеpиодом t = 2 , совпадающая на 2 отpезке c функцией x - 2.25*x , а на отpезке с функцией x-1.25. Проверить в цикле на интервале x= для не менее 15... http://www.cyberforum.ru/cpp-beginners/thread290439.html
работа с текстовыми файлами C++
подскажите пожалуйста как решить эти задачи методом для начинающего или где можно взять литературу по строкам пожалуйста заранее благодарен Составить программу,которая позволяла бы в текстовом файле,указанном пользователем,выравнить строки путем вставки дополнительных пробелов между словами.Требуемую длину строки определяет пользователь (предполагается,что она не меньше исходной).
C++ Запуск bat файла
Возможно ли написать программу которая запускает bat файл.
C++ Реализовать шаблон сортировки двухпутевыми вставками http://www.cyberforum.ru/cpp-beginners/thread290404.html
Помогите пожалуйста в решении нескольких задач: 1)Линейные списки (стек, очередь, линейный односвязный список). Продемонстрировать работу с данными структурами. 2)Ключевое слово, оператор, процедура, программа. Программа демонстрирует использование этих объектов. 3)Реализовать шаблон сортировки двухпутевыми вставками. Заранее спасибо.
C++ Проверка символа на повторяемость. Всем здравствуйте! При разработке программы столкнулся с проблемкой. Задача: На входе имеется массив символов, например, mamamilaramu. На выходе нужно получить массив символов из которых состоит прошлая строчка, т.е.: mailru (без повторений) Не могу сообразить алгоритм этого действия. Может кто-нибуть подскажет как это реализовать? А если кто-то еще и клочек программки выложит, буду... подробнее

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

Нахождение кратчайших слов в каждой строке текста - C++

07.05.2011, 11:40. Просмотров 616. Ответов 0
Метки (Все метки)

Задание: В произвольном тексте (взятом из файла), содержащем не более 10 строк, в каждой строке не более 80 символов, найти и вывести на экран в виде списка слова наименьшей длины. Вывод организовать в порядке возрастания количества букв в слове, с указанием из какой строки взято слово и размера слова наибольшей длинны для данной строки.

Для начала пробую разобраться с поиском слов наименьшей длины в каждой строке. Программа выдает слово только для первой строки. Подскажите, пожалуйста, как исправить код, чтобы находились кратчайшие слова из каждой строки?

PS: буду благодарна, если направите также, как делать дальнейший вывод по заданию (т.е. как организовать сравнение кратчайших слов?)


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
63
64
65
66
67
68
69
70
71
#include "stdafx.h"
#include<conio.h>
#include<iostream>
using namespace std;
 
 
 
 
int main()
{   
    setlocale(LC_ALL, "Russian");
    
    char s[80];
    int dlina=0, min_sl=20, i;
  
       //Открытие файла
        FILE *F;
    if(F=fopen("D:\\F.txt", "rt"))
    {
        cout<<"+\n\n";
    }
    else cout<<"-";
 
 
    while(!feof(F))
    {
        fgets(s,80,F);
        
 
        for(i=0; i<strlen(s); i++)
        { if(s[i]!=' ' && s[i]!='\n' && i<strlen(s)-1)
                                   dlina++;  //нахождение длины слова
        
          else
           {
            if(i==strlen(s)-1){dlina++;i++;}
            if(dlina<min_sl){min_sl=dlina;}
            dlina=0;
            }
        }
 
        cout<<"Слово: ";
        for(i=0;i<strlen(s); i++)
    {
        if(s[i]!=' ' && s[i]!='\n' && i<strlen(s)-1)
             dlina++;
         
        else
         {
            if(i==strlen(s)-1){min_sl++;i++;}
            if(dlina==min_sl)
             { 
                
                 for(int j=i-min_sl; j<=i; j++) //вывод кратчайшего слова на экран
                 {
                    cout<<s[j]; 
                 }
                    cout<<"\n\n\n";
             }
                
            dlina=0;
         }
        }
 
    }
 
    _fcloseall();
 
    _getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru