Примерно так. На псевдоязыке, который легко переводится в тот, который знаком
//
Сумм=0;
Конец=0;
Ввод(Ч);
Пока (Ч#Конец) Цикл
Если Проверить(Ч)=1 Тогда
Сумм=Сумм+Ч;
КонецЕсли;
Ввод(Ч);
КонецЦикла;
Печать(Сумм);
//
//
Функция Проверить(П)
Если Остаток(П,10)=4 Тогда
Если Остаток(П,6)=0 Тогда
Возврат(1);
КонецЕсли;
КонецЕсли;
Возврат(0);
КонецФункции
//
Этот текст не использует массивы, поэтому количество вводимых чисел неограничено. Их величина определяется описанием переменной(если в языке оно явно требуется, для приведенных данных достаточно описать как ЦЕЛОЕ(INTEGER)). Сумм описать побольше(если требуется).
Если в языке нет функции Остаток(обычно MOD), напиши свою, это очень просто.
Повторюсь, в Паскаль, Бейсик, 1С текст переводится очень легко, в С(Java, PHP и пр.) чуть сложнее, там немного другой синтаксис, но это преодолимые проблемы.
Не сказала бы, что это решение сильно отличается от уже имеющегося, но
а) оно совсем немножко удобнее (хотя бы из-за ClrScr и вывода ответа с определённым количеством знаков после запятой). А ещё предусмотрена возможность отсутствия таковых чисел.
б)ну не могла я пропустить задачу по паскалю)
Program n1;
Uses CRT;
Const n=10;
Var a: array[1..n] of integer;
i,s,k: integer;
begin
ClrScr;
Randomize;
For i:=1 to n do
begin
a[i]:=random(10);
write(a[i]:3);
If a[i]=i then
begin
s:=s+a[i];
writeln('s=',s);
k:=k+1;
end;
end;
writeln;
If k=0 then writeln('таких элементов нет') else
Writeln('Среднее арифметическое элементов массива, равных своим индексам, равно ',s/k:4:4);
readln
end.
Поделитесь своими знаниями, ответьте на вопрос:
Дано натуральное число. Из данного натурального числа удалить все цифры А (А вводится с клавиатуры Типы переменных можно использовать: real и integer.
var x, a, b, k: integer;
begin
write('Введите число: ');
readln(x);
write('Введите цифру: ');
readln(a);
b := 0;
k := 1;
while x > 0 do //цикл пока данное число больше 0
begin
if x mod 10 <> a then // сравниваем последнюю цифру данного числа с указанной цифрой
begin // если последняя цифра данного числа не равна указанной цифре
b := b+(x mod 10)*k; // получаем новое число из числа b и последней цифры данного числа умноженной на коэффициент
k := k*10; // увеличиваем коэффициент (единицы, десятки и т.д.)
end;
x := x div 10; // отбрасываем последнюю цифру из данного числа
end;
writeln('Получилось: ', b);
end.