Найти порядковый номер самого длинного слова среди введенных литерных величин - C#
Формулировка задачи:
УСЛОВИЕ:
Дан текстовый файл Inlet.in, содержащий строко-
вые величины S.
Найти порядковый номер самого длинного слова сре-
ди введенных литерных величин. Если этого сделать
нельзя, значением результата положить –1.
Определение. Слово - это последовательность
символов литерной величины, не содержащая в
себе символ пробела.
Ввод (файл Inlet.in):
Строковая величина
Строковая величина
. . .
Строковая величина
Вывод (файл Outlet.out):
Порядковый номер длинного
слова текста или -1
ВОТ ПРИМЕРНЫЙ КОД В ДЕЛФИ,НО ОН НЕ СОВСЕМ ПРАВИЛЬНЫЙ ,КАК СКАЗАЛ ПРЕПОДАВАТЕЛЬ
Листинг программы
- program Project2;
- {$APPTYPE CONSOLE}
- uses
- SysUtils;
- var s,maxslovo, slovo:string;
- first, second: text;
- n,i,k:integer;
- Procedure PassWhiteSpace(var i:integer);
- begin
- while (i<=Length(s)) and (s[i]=' ') do
- begin
- inc(i);
- end;
- end;
- Procedure getword(var i,n: integer; out slovo:string);
- begin
- while (i<=Length(s)) and (s[i]<>' ') do
- begin
- slovo:=slovo+s[i];
- inc(i);
- end;
- inc(n);
- end;
- begin
- { TODO -oUser -cConsole Main : Insert code here }
- assign(first,'Inlet.in');
- assign(second,'Outlet.out');
- reset(first);
- rewrite(second);
- maxslovo:='';
- n:=0;
- while not eof(first) do
- begin
- readln(first,s);
- i:=1;
- while i<=length(s) do
- begin
- passwhitespace(i);
- getword(i,n,slovo);
- if length(maxslovo)<length(slovo) then
- begin
- maxslovo:=slovo;
- k:=n;
- end;
- end;
- end;
- write(second,k);
- close(first);
- close(second);
- end.
Решение задачи: «Найти порядковый номер самого длинного слова среди введенных литерных величин»
textual
Листинг программы
- static void Main()
- {
- //адрес файлов естественно на свой
- string[] s = File.ReadAllText(@"E:\Inlet.in").Split(' ','\n').ToArray(); //пишем слова в массив
- int s1;
- if (s.GroupBy(v => v.Length).Count() <= 2) s1 = -2; //если длина всех слов одинакова
- else s1 = s.Aggregate(0, (x, v) => v != s.Where(b => b.Length == s.Select(c => c.Length).Max()).First() ? x + 1 : x); //вычисляем индекс
- File.WriteAllText(@"E:\Outlet.out", String.Format("{0}", s1 + 1)); //пишем файл
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д