Вывести Max И Min Слово В Строке С++

Тема в разделе "C/C++/C#", создана пользователем irit, 7 янв 2012.

  1. irit

    irit Гость

    Добрый День. Помогите пожалуйста с решением следующей задачи:
    В подключаемой к головной программе функции необходимо реализовать следующее: найти и вывести на экран самое длинное и самое короткое слово в указанной пользователем строке (n) символьной матрицы М. Пишем на Борланде. Некоторые функции из книг - не работают. Получилось написать только подсчет макс. длины слова, но как найти мин. и вывести их оба на экран - не могу понять. Была идея зафиксировать индекс первой буквы макс. и мин. слова в отдельных переменных и затем вывести их циклом до пробела, но реализовать не получилось, только путаюсь ещё больше. Заранее спасибо. Вот код:

    Код (C++):
    void Stroki(char M[K_Strok][K_Stolb], int st, int el)
    {
    clrscr();       gotoxy (20,20);
    char Mchar;
    int n;
    cout << "Vvedite nomer stroki ";

    cin >> n;  


    int curlen = 0; // dlina slova
    int maxlen = 0; // max dlina slova
    int minlen = el; // min dlina slova
    int index = -1; // scetchik


    for (int i=0;; i++)
    {  
    Mchar = M[n][i];



    if (Mchar == ' '|| Mchar == '\0')

    index = i;   
    curlen = i-index;

    if (curlen > maxlen)
    maxlen = curlen;


    if (Mchar == '\0')
    {
    break;
    }
     
  2. ruamanga

    ruamanga New Member

    Регистрация:
    12 янв 2012
    Сообщения:
    4
    Симпатии:
    0
    Вот вариант всё в main() для визуализации:

    Код (C++):
    #include <vcl.h>
    #pragma hdrstop
    #include <conio.h>
    #include <iostream.h>
    #pragma argsused
    int main(int argc, char* argv[])
    {
    const int K_Strok=2, K_Stolb=120;
    int st, el, flagsign=0;
    char M[K_Strok][K_Stolb]={"Vfieufygu jud hfu wkufykg iugiug gffee"," ewu7fwejytewv  kuygu g ygutyfu uguyfu"};

    clrscr(); gotoxy (20,20);
    char Mchar;
    int n;

    cout << "Vvedite nomer stroki ";
    cin >> n;

    int curlen = 0; // dlina slova
    int maxlen = 0; // max dlina slova
    int minlen = K_Stolb; // min dlina slova
    int index = -1; // scetchik

    for (int i=0;; i++)
    {
    Mchar = M[n][i];
    if (Mchar == '\0') break;
    if (Mchar == ' ' || Mchar == '\0')
    {
    if (flagsign==0) continue;
    else {
    curlen = i-index-1;
    index = i;
    cout << " curlen = " << curlen << "; ";
    if (curlen > maxlen) maxlen = curlen;
    if (curlen < minlen) minlen = curlen;
    };
    };
    if (Mchar == ' ') flagsign = 0; else flagsign = 1;
    }
    cout << "\nword length maximal = " << maxlen << "\n";
    cout << "word length minimal = " << minlen << "\n";
    return 0;
    }
     
Загрузка...

Поделиться этой страницей