Данные о росте учащихся класса хранятся в виде массива. Рост мальчиков кодируется знаком минус, а рост девочек знаком плюс. Составьте блок-схему и программу определения среднего роста девочек и мальчиков одного класса. В классе...
Данные о росте учащихся класса хранятся в виде массива. Рост мальчиков кодируется знаком минус, а рост девочек знаком плюс. Составьте блок-схему и программу определения среднего роста девочек и мальчиков одного класса. В классе учится п учеников.
Ответ(ы) на вопрос:
const n=10;
var
a: array[1..n] of integer;
i, km, kf, tm, tf: integer;
sm, sf: real;
begin
for i:=1 to n do
readln(a[i]); //считываем массив
km:=0; kf:=0; tm:=0; tf:=0;
for i:=1 to n do
//находим суммарный рост мальчиков
//и девочек, и количество
if a[i] < 0 then
begin
km:=km+1;
tm:=tm + abs(a[i]);
end
else
begin
kf:=kf+1;
tf:=tf + a[i];
end;
//находим среднее арифметическое
if km > 0 then
sm:=tm/km;
if kf > 0 then
sf:=tf/kf;
writeln('Средний рост мальчиков: ', sm);
writeln('Средний рост девочек: ', sf);
end.
// PascalABC.NET 3.0, сборка 1128
begin
var n:=ReadInteger('Количество учеников: ');
Writeln('Вводите рост учеников (девочек - с минусом)');
var a:=ReadArrInteger(n);
WriteFormat('Средний рост мальчиков {0}, девочек {1}',
a.Where(x->x>0).Average,-a.Where(x->x<0).Average)
end.
Тестовое решение:
Количество учеников: 5
Вводите рост учеников (девочек - с минусом)
160 -156 162 -160 -158
Средний рост мальчиков 161, девочек 158
Не нашли ответ?
Похожие вопросы