Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

derelict



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Код:
 
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
void main()
{
  // Исходная строка
  char str[257];
  // Считываем с консоли исходную строку
  cout<<"String: ";
  cin.getline(str, 254);
  // Определяем длину строки
  int len = strlen(str);
  // Добавляем к строке пробел (для удобства анализа)
  strcat(str, " ");
  // Начало текущего слова
  int pos = 0;
  // Начало слова максимальной длины
  int start = 0;
  // Длина искомого слова
  int max = 0;
  // Результат
  int F = 1;
  // Проходим по всем символам строки
  for(int i = 1; i < len + 1; i++)
  {
    // Если текущий символ - пробел
    if(str[i] == ' ')
    {
      // Если предыдущий символ не пробел
      if(str[i - 1] != ' ')
      {
        // Если длина текущего слова больше максимальной
        if(i - pos > max)
        {
          // Сохраняем длину текущего слова в качестве максимальной
          max = i - pos;
          // Сохраняем начало текущего слова
          start = pos;
          // Определяем, в какой части строки находится слово
          if(pos < len / 2)
          {
            if(i < len / 2)
            {
              F = 1;
            }
            else
            {
              F = 0;
            }
          }
          else
          {
            F = 2;
          }
        }
        // Пропускаем последовательности пробелов
        while(str[i] == ' ')
        {
          i++;
        }
        // Обновляем позицию текущего слова
        pos = i;
      }
      else
      {
        // Обновляем позицию текущего слова
        pos = i + 1;
      }
    }
  }
  // Выводим результат
  cout<<"F = "<<F<<endl;
  // Выводим слово максимальной длины
  cout<<"Word: ";
  for(int i = start; i < start + max; i++)
  {
    cout<<str[i];
  }
  getchar();
}
 


Всего записей: 232 | Зарегистр. 11-06-2006 | Отправлено: 23:09 04-12-2009
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru