Найти порядковый номер самого длинного слова среди введенных литерных величин - C#

Узнай цену своей работы

Формулировка задачи:

УСЛОВИЕ: Дан текстовый файл Inlet.in, содержащий строко- вые величины S. Найти порядковый номер самого длинного слова сре- ди введенных литерных величин. Если этого сделать нельзя, значением результата положить –1. Определение. Слово - это последовательность символов литерной величины, не содержащая в себе символ пробела. Ввод (файл Inlet.in): Строковая величина Строковая величина . . . Строковая величина Вывод (файл Outlet.out): Порядковый номер длинного слова текста или -1 ВОТ ПРИМЕРНЫЙ КОД В ДЕЛФИ,НО ОН НЕ СОВСЕМ ПРАВИЛЬНЫЙ ,КАК СКАЗАЛ ПРЕПОДАВАТЕЛЬ
Листинг программы
  1. program Project2;
  2. {$APPTYPE CONSOLE}
  3. uses
  4. SysUtils;
  5. var s,maxslovo, slovo:string;
  6. first, second: text;
  7. n,i,k:integer;
  8. Procedure PassWhiteSpace(var i:integer);
  9. begin
  10. while (i<=Length(s)) and (s[i]=' ') do
  11. begin
  12. inc(i);
  13. end;
  14. end;
  15. Procedure getword(var i,n: integer; out slovo:string);
  16. begin
  17. while (i<=Length(s)) and (s[i]<>' ') do
  18. begin
  19. slovo:=slovo+s[i];
  20. inc(i);
  21. end;
  22. inc(n);
  23. end;
  24. begin
  25. { TODO -oUser -cConsole Main : Insert code here }
  26. assign(first,'Inlet.in');
  27. assign(second,'Outlet.out');
  28. reset(first);
  29. rewrite(second);
  30. maxslovo:='';
  31. n:=0;
  32. while not eof(first) do
  33. begin
  34. readln(first,s);
  35. i:=1;
  36. while i<=length(s) do
  37. begin
  38. passwhitespace(i);
  39. getword(i,n,slovo);
  40. if length(maxslovo)<length(slovo) then
  41. begin
  42. maxslovo:=slovo;
  43. k:=n;
  44. end;
  45. end;
  46. end;
  47. write(second,k);
  48. close(first);
  49. close(second);
  50. end.

Решение задачи: «Найти порядковый номер самого длинного слова среди введенных литерных величин»

textual
Листинг программы
  1. static void Main()
  2. {
  3.     //адрес файлов естественно на свой
  4.     string[] s = File.ReadAllText(@"E:\Inlet.in").Split(' ','\n').ToArray(); //пишем слова в массив
  5.     int s1;
  6.     if (s.GroupBy(v => v.Length).Count() <= 2)  s1 = -2; //если длина всех слов одинакова
  7.     else s1 = s.Aggregate(0, (x, v) => v != s.Where(b => b.Length == s.Select(c => c.Length).Max()).First() ? x + 1 : x); //вычисляем индекс
  8.     File.WriteAllText(@"E:\Outlet.out", String.Format("{0}", s1 + 1)); //пишем файл
  9. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы