В примере ответы не соответствуют заданию: ищется самая большая цифра а не маленькая, а по условию должна искаться самая маленькая. Написал код, который соответствует именно заданию:
Объяснение:
var
n, k, min, colmin, i: integer;
begin
repeat
Write('Введите число: ');
Readln(n);
until (n>=10000) and (n<=99999);
k := n;
min := k mod 10;
k := k div 10;
for i := 1 to 4 do
if (k mod 10 < min) then min := k mod 10;
end;
for i := 1 to 5 do
if (k mod 10 = min) then inc(colmin);
WriteLn(min, ' ', colmin);
end.
В примере ответы не соответствуют заданию: ищется самая большая цифра а не маленькая, а по условию должна искаться самая маленькая. Написал код, который соответствует именно заданию:
Объяснение:
var
n, k, min, colmin, i: integer;
begin
repeat
Write('Введите число: ');
Readln(n);
until (n>=10000) and (n<=99999);
k := n;
min := k mod 10;
k := k div 10;
for i := 1 to 4 do
begin
if (k mod 10 < min) then min := k mod 10;
k := k div 10;
end;
k := n;
for i := 1 to 5 do
begin
if (k mod 10 = min) then inc(colmin);
k := k div 10;
end;
WriteLn(min, ' ', colmin);
end.
// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
begin
Writeln(Range(1,100).Select(i->sin(i)*cos(i)).Where(x->x<>0).Average)
end.
Тестовое решение:
-0.00136006072493969
2. А вот так учат писать это же школьные учителя:
// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
var
m:array[1..100] of real;
i,k:integer;
s:real;
begin
s:=0;
k:=0;
for i:=1 to 100 do begin
m[i]:=sin(i)*cos(i);
if m[i]<>0 then begin
s:=s+m[i];
k:=k+1
end
end;
Writeln(s/k)
end.
Тестовое решение:
-0.00136006072493969