Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> преобразование символов в строки 
:(
    Опции темы
Анна25
Дата 27.3.2013, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 10.12.2012

Репутация: нет
Всего: нет



Дан текст, содержащий цифры. Найти наибольшее количество идущих подряд чисел. Что я делаю не так? Объясните пожалуйста. 


Код


#include <iostream>

#include <string>

using namespase std;

int main ()

{
 string str;

getline (cin, str);

int k=0, max=0;

for( unsigned int i=0; i<=length(); i++)

{ k=0;

if (isdigit(str[i]))

k++; 

while((isdigit(str[i+1]))&&(i<str.length()-1))

{ k++; i++;
}

if (k>max) max=k;
}

return 0;

}

PM MAIL   Вверх
Crafty
Дата 27.3.2013, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 319
Регистрация: 3.11.2008

Репутация: 12
Всего: 14



Цитата(Анна25 @  27.3.2013,  17:34 Найти цитируемый пост)
Найти наибольшее количество идущих подряд чисел

Может одинаковых цифр?
PM MAIL   Вверх
Анна25
Дата 27.3.2013, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 10.12.2012

Репутация: нет
Всего: нет



Цитата(Crafty @ 27.3.2013,  17:44)
Цитата(Анна25 @  27.3.2013,  17:34 Найти цитируемый пост)
Найти наибольшее количество идущих подряд чисел

Может одинаковых цифр?

нет, в учебнике именно наибольшее количество подряд идущих цифр 
PM MAIL   Вверх
Crafty
Дата 27.3.2013, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 319
Регистрация: 3.11.2008

Репутация: 12
Всего: 14



Цифр в числе, т.е. число с наибольшем кол-вом цифр в нем? просто выше было написано 
Цитата(Анна25 @  27.3.2013,  17:34 Найти цитируемый пост)
Найти наибольшее количество идущих подряд чисел.

Так тогда все работает.

PS Отформатировать код не мешало бы!

Добавлено через 5 минут и 8 секунд
Цитата(Анна25 @  27.3.2013,  17:34 Найти цитируемый пост)
Что я делаю не так?

я вроде ничего не менял, кроме using namespace std;

LWS

Это сообщение отредактировал(а) Crafty - 27.3.2013, 18:22
PM MAIL   Вверх
Crafty
Дата 27.3.2013, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 319
Регистрация: 3.11.2008

Репутация: 12
Всего: 14



Код

#include <iostream>
#include <string>

using namespace std;

int main()
{
   string line;
   getline(cin, line);
   size_t k = 0;
   size_t maxDigits = 0;
   size_t lineLen = line.length();
   for(size_t i = 0; i != lineLen; ++i)
   {
      if (isdigit(line[i]))
         ++k;
      else 
      { 
         if (k > maxDigits)
            maxDigits = k;
         k = 0;
      }
   }

   if (k > maxDigits)
      maxDigits = k;
   cout << maxDigits << endl;
   
   return 0;
}
   


Это сообщение отредактировал(а) Crafty - 27.3.2013, 20:15
PM MAIL   Вверх
feodorv
Дата 27.3.2013, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



По окончании цикла тоже нужно проверить
Цитата(Crafty @  27.3.2013,  20:30 Найти цитируемый пост)
         if (k > maxDigits)
            maxDigits = k;

 smile 


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
Crafty
Дата 27.3.2013, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 319
Регистрация: 3.11.2008

Репутация: 12
Всего: 14



feodorv, Точно, спс  smile 
PM MAIL   Вверх
Анна25
Дата 27.3.2013, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 10.12.2012

Репутация: нет
Всего: нет



спасибо за помощь!)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0510 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.