<em>// PascalABC.NET 3.3, сборка 1540 от 16.09.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
Writeln(ReadReal/3:0:3)
end.
<u>Примеры</u>
1
0.333
2
0.667
#include <stdio.h>
int main() {
int a[20], b[30], c[20], lenC = 0;
for(int i = 0; i < 20; i++) scanf("%d", &a[i]);
for(int i = 0; i < 30; i++) scanf("%d", &b[i]);
for(int i = 0; i < 30; i++)
for(int j = 0; j < 20; j++)
if(b[i] == a[j]) {
c[i] = b[i];
lenC++;
for(int k = j; k < 20; k++)
if(a[k] == b[i]) a[k] = 0;
b[i] = 0;
break;
}
for(int i = 0; i < lenC; i++) printf("%d ", c[i]);
}
имеем три возможных варианта оценок: 3, 4, 5. Т.е. наша система исчисления - троичная (в основании системы - 3 знака). Количество четвертей в журнале тоже 3, то есть наше число имеет три разряда. Для подсчёта количества возможных вариантов возводим основание системы исчисления (3 знака) в степень разрядов (3 четверти). Три в третьей степени = 27.
Соответственно максимальное количество учеников - двадцать семь.
(надо ли писать программу для вывода на консоль всех возможных вариантов?)
Const
N = 8;
var
a: array[1..N] of integer;
p: integer;
i: byte;
begin
writeln('Введите массив из ', N, ' элементов');
i := 0;
p := 1;
while i < n do
begin
i := i + 1;
read(a[i]);
if a[i] <> 0 then p := p * a[i];
end;
writeln('Отредактированный массив');
i := 0;
repeat
i := i + 1;
if a[i] < 0 then a[i] := p;
write(a[i], ' ');
until i >= n;
end.
Не гарантирую, что нет иных ошибок, но:
for z:=q to w do
<span>pr:=pr*a[z];
</span>в этом случае перемножаются максимальный и минимальные элемент тоже. нужно
for z:=q + 1 to w - 1 do
<span>pr:=pr*a[z];
</span>
и, да, нужно с модулем
if abs(a[i])<abs(amin) then
begin
<span>amin:=a[i];
</span>
if abs(a[i]) > abs(amax) then
а здесь где begin???
amax:=a[i];
<span>i2:=i;
</span>
и где вывод ответа?