var
a: array [1..4] of char;
s: string;
i: byte := 1;
begin
readln(s);
while (i < length(s)) do
begin
if ((not(s[i] in ['ж', 'ч', 'ш', 'щ'])) or (pos(s[i], s) > i)) then
delete(s, i, 1)
else
i += 1;
end;
writeln(s);
end.
Суть в том, чтобы удалить все нешипящие буквы, а также повторы шипящих, после чего просто вывести строку
На каком языке нужно? Если на с++ то
#include
using namespace std;
int main ()
{ int a,b,c,d;
cin >> a >>b>>c>>d;
a=(a+b)*10;
c=c*d;
if(a>c){
cout << a;
}
else cout << c;
}
Паскаль "не умеет" читать числа напрямую. В случае "текстового ввода" он читает всё вводимое, как последовательность символов, которую затем анализирует и преобразует в соответствии со списком переменных в операторе ввода и их типом.
Завершается текстовый ввод в Паскале всегда нажатием клавиши Enter, посылающей последовательность символов с десятичными кодами 13 и 10 (CR - "возврат каретки" и LF- "перевод строки"), либо считыванием этих кодов из файла.
"Команда" Realln (на самом деле это не команда, а процедура) считывает и удаляет последовательность символов с кодами 13, 10, а Read - оставляет эти коды не считанными. Если после Read будет еще один оператор ввода, читающий СИМВОЛЬНЫЕ данные (string, char), то оставшиеся необработанными после предыдущего Read символы с кодами 13,10 будут восприняты, как вводимые, что неверно.
<u>Как итог: </u>только в случае, когда есть ввод символьных данных и эти данные вводятся не в единственном операторе ввода, перед вводом таких данных нужно указывать Readln. В прочих случаях разницы нет.
<span>допустим первые три массива:
int a[10], b[10], c[10];
</span> int d[10] //четвертый массив
for (int i = 0; i < 0; ++i)
{
d[i] = a[i];
if(b[i]>d[i])
{
d[i] = b[i];
}
if ( c[i] > d[i])
{
d[i] = c[i];
}
<span>}</span>