Найти порядковый номер самого длинного слова среди введенных литерных величин - 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)); //пишем файл
}

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


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

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

8   голосов , оценка 3.875 из 5
Похожие ответы