предполагается, что вводимые числа - целые.
1) с цикла repeat until
program n1; uses crt; var s,k,i: integer; sr: real; beginwriteln('vvodite chisla. vvedite 0 dlya okoncania vvoda'); repeatreadln(i); s: =s+i; inc(k); until i=0; sr: =s/(k-1); writeln('srednee arifmeticheskoe = ',sr: 4: 4); readlnend.
2) с цикла while
program n1; uses crt; var s,k,i: integer; sr: real; beginwriteln('vvodite chisla. vvedite 0 dlya okoncania vvoda'); i: =1; while i< > 0 dobeginreadln(i); s: =s+i; inc(k); end; sr: =s/(k-1); writeln('srednee arifmeticheskoe = ',sr: 4: 4); readlnend.
3) с цикла for
program n1; uses crt; var s,j,k,i: integer; sr: real; beginwriteln('vvedite kolichestvo chisel'); readln(k); writeln('vvodite chisla'); for j: =1 to k do begin readln(i); s: =s+i; end; sr: =s/k; writeln('srednee arifmeticheskoe = ',sr: 4: 4); readlnend.
Данная задача состоит из двух подзадач:
Определить цифры, из которых состоит число.
Отсортировать их в порядке возрастания.
Поскольку стоит вопрос о сортировке, то уместно цифры числа помещать массив. Цифры из заданного числа извлекаются путем последовательного нахождения остатка от деления на 10.
const N = 10;
var
arr: array[1..N] of byte;
m: longint;
i, j, k, b: byte;
begin
readln(m);
k := 0;
while m > 0 do begin
k := k + 1;
arr[k] := m mod 10;
m := m div 10;
end;
for i:=1 to k-1 do
for j:=1 to k-i do
if arr[j] > arr[j+1] then begin
b := arr[j];
arr[j] := arr[j+1];
arr[j+1] := b;
end;
for i:=1 to k do
write(arr[i],' ');
writeln;
end.
Объяснение:
Поделитесь своими знаниями, ответьте на вопрос:
Определите наименьшее расстояние между двумя локальными максимумами последовательности натуральных чисел, завершающейся числом 0. если в последовательности нет двух локальных максимумов, выведите число 0. начальное и конечное значение при этом локальными максимумами не считаются. pascal или python