Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 06.01.2012, 09:23   #1
Зеленый Чай
Новичок
Джуниор
 
Регистрация: 06.01.2012
Сообщений: 1
Радость С# найти самое длинное и самое короткое слово в строке и вывести их

C# начал изучать недавно, подскажите, как можно решить данную задачу? Дана функция, в которую передается (из головной программы) символьная матрица. Необходимо найти самое длинное и самое короткое слово в выбранной пользователем строке n и вывести их на экран в виде: номер выбранной строки, самое длинное слово, самое короткое слово.
Получилось найти только самое длинное (но не вывести):

Код:
void Stroki(char M[K_Strok][K_Stolb], int st, int el)
{
 clrscr();        gotoxy (20,20);
 char Mchar;
 int  n;
 cout << "Vvedite nomer stroki ";
                  //gotoxy (20,20);
 cin >> n;    
 
 
int curlen = 0;    // dlina slova
int maxlen = 0;    // max dlina slova
int minlen = 100;  // min dlina slova
int index = -1;    
    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;
  }
 
}
Для поиска самого короткого слова аналогия с maxlen не работает. Точнее, curlen обнуляется. Неужели новый цикл создавать? А для вывода, как я понимаю, нужно создать две строковые переменные?
Зеленый Чай вне форума Ответить с цитированием
Старый 06.01.2012, 09:44   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

cout , cin ?! В C#?!
_-Re@l-_ вне форума Ответить с цитированием
Старый 06.01.2012, 10:51   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

автор темы явно путает C/C++ и C# (или вообще считает, что это всё один и тот же язык программирования)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.01.2012, 17:17   #4
Sna1L
Форумчанин
 
Аватар для Sna1L
 
Регистрация: 15.03.2011
Сообщений: 272
По умолчанию

оффтоп. сожгите макулатуру, по которой Вы учитесь
Sna1L вне форума Ответить с цитированием
Старый 06.01.2012, 17:40   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,503
По умолчанию

Цитата:
Код:
for (int i=0;; i++)
{    
 
    Mchar = M[n][i];
А Mchar зачем? не проще M[n][i] и использовать?
Цитата:
Код:
if (Mchar == '\0')
{
    break;
}
Может лучше перенести это в условие завершения цикла?

Цитата:
Дана функция
Кому и где она дана? По-моему наоборот ее просят написать оО
Цитата:
А для вывода, как я понимаю, нужно создать две строковые переменные?
По разному можно. Как придумал, так и выводи. Я бы сделал две функции, возвращающие соответственно короткое и длинное слова.

Кстати, форматирование кода не очень.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 06.01.2012 в 17:45.
Alex11223 вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме 20000 рублей в месяц
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простая прога - самое длинное и короткое слово TaylorGang Паскаль, Turbo Pascal, PascalABC.NET 1 29.12.2011 20:54
Найти самое длинное слово в строке (массив) bot.bat Помощь студентам 2 04.11.2011 23:40
Найти самое короткое и длинное слова и указать позиции на паскале Klik_1602 Помощь студентам 6 04.01.2011 19:39
заменить самое длинное слово, на самое короткое в Delphi сер4ей Помощь студентам 5 05.03.2009 18:40
Вывести самое длинное слово (Си) ManInBlack Помощь студентам 10 19.01.2009 00:17


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS