Самая длинная строка в массиве

Вводятся строки. Определить самую длинную строку и вывести ее номер на экран. Если самых длинных строк несколько, то вывести номера всех таких строк.

  1. При считывании строк, каждую из них следует поместить в массив.
  2. Предположим, что первая строка самая длинная. Присвоим ее индекс переменной.
  3. Переберем все элементы-строки массива, начиная со второго. Если длина очередной строки больше, чем той, индекс которой записан в переменной (п. 2), то записать в эту переменную индекс текущей строки.
  4. Снова переберем все элементы массива строк. Если длина очередной строки совпадает с длиной той строки, индекс которой хранится в переменной (п. 2), то вывести ее номер на экран.
Pascal
Самая длинная строка паскаль

const N = 5;
var
ss: array[1..N] of string;
i,ind: byte;
begin
for i:=1 to N do begin
write(i,'-я: ');
readln(ss[i]);
end;

ind:=1;
for i:=2 to N do
if length(ss[i]) > length(ss[ind]) then
ind := i;

for i:=1 to N do
if length(ss[i]) = length(ss[ind]) then
write(i, ' ');
writeln;
end.



1-я: this is town
2-я: cat walk
3-я: lamp
4-я: blue lamp!!!
5-я: ok
1 4
Язык Си

#include < stdio.h>
#include < string.h>
#define N 5
main() {
char str[N][30];
int i,ind;
for (i=0; i< N; i++) {
printf("%d-я: ",i+1);
gets(str[i]);
}
ind = 0;
for (i=1; i< N; i++)
if (strlen(str[i]) > strlen(str[ind]))
ind = i;

for (i=0; i< N; i++)
if (strlen(str[i]) == strlen(str[ind]))
printf("%d ",i+1);
printf("\n");
}
Python

# Вариант 1

N = 5

a = []
for i in range(N):
print(i+1, end='-я: ')
a.append(input())

ind = 0
for i in range(1, N):
if len(a[i]) > len(a[ind]):
ind = i

for i in range(N):
if len(a[i]) == len(a[ind]):
print(i+1)


# Вариант 2

N = 5

a = [input(str(i + 1) + '-ая: ') for i in range(N)]
max_len = max([len(i) for i in a])
[print(i+1, end=' ') for i in range(N) if len(a[i]) == max_len]
КуМир

алг самая длиная строка
нач
лит таб ss[1:5]
цел i, id
нц для i от 1 до 5
вывод i, "-я: "
ввод ss[i]
кц
id := 1
нц для i от 2 до 5
если длин(ss[i]) > длин(ss[id]) то
id := i
все
кц
нц для i от 1 до 5
если длин(ss[i]) = длин(ss[id]) то
вывод i, " "
все
кц
кон
Basic-256

N = 5
dim s$(N,20)
for i=0 to N-1
print (i+1)+"-я: ";
input s$[i]
next i

ind = 0
for i=1 to N-1
if length(s$[i]) > length(s$[ind]) then ind = i
next i
for i=0 to N-1
if length(s$[i]) = length(s$[ind]) then print i+1
next i

Оцените статью
Добавить комментарий