помогите исправить

Ответить
proBEERka
Сообщения: 4
Зарегистрирован: 24 ноя 2009, 19:22

25 дек 2009, 23:22

1.Задан одномерный целочисленный массив из n элементов (n ≤ 20, вводится пользователем с клавиатуры).
Найти:
1.Суму элементов массива с четным номером.
2.Номеры элементов, превышающих среднего арифметического всех элементов массива.
3.Найменший с нечетным элементов массива.

program proBEERka;
uses crt;
var a:array [1..13] of integer;
i,s,min:integer;
sa:real;
begin
clrscr;
randomize;

for i:=1 to 13 do begin
a:=random(100)-50;
writeln(i,' element =',a);
end;

s:=0;
sa:=0;
for i:=1 to 13 do begin
if not(odd(i)) then
s:=s+a;
end;
writeln('suma=',s:4);

for i:=1 to 13 do
if i>sa then
sa:=(sa+a)/i;
writeln('element nomer ',i,' bilshe serednyogo arefmetuchnogo');
for i:=1 to 13 do
min:=a[1];
if ( i mod(2)<>0) and (a<min) then
min:=a;
writeln ('naymenshuy element',i);
readkey;
end.

Помогите подправить код... заранее спс...
Newbie
Сообщения: 142
Зарегистрирован: 06 сен 2009, 19:45

25 дек 2009, 23:52

Код: Выделить всё

for i:=1 to 13 do
if i>sa then
sa:=(sa+a[i])/i;
writeln('element nomer ',i,' bilshe serednyogo arefmetuchnogo');ъ

for i:=1 to 13 do
min:=a[1];
if ( i mod(2)<>0) and (a[i]<min) then
min:=a[i];
writeln ('naymenshuy element',i);
здесь вообще какая-то шляпа.
1. if i>sa then
sa:=(sa+a)/i;
+ writeln('element nomer ',i,' bilshe serednyogo arefmetuchnogo'); уже после цикла
сам понимаешь что делаешь? фигня какая-то.

2. опять же, несколько действий в цикле без begin..end (или они были нарошно опущены?)
for i:=1 to 13 do
min:=a[1]; - это надо вынести перед циклом ибо будет затиратся всегда min значение, а сам цикл начинать с 3го элемента
if ( i mod(2)<>0) and (a<min) then
min:=a;
samec2011
Сообщения: 39
Зарегистрирован: 14 май 2009, 08:24

25 дек 2009, 23:54

Помогу, за оплату.
Стучите в асю 11один11-5шесть5шесть, обсудим.
proBEERka
Сообщения: 4
Зарегистрирован: 24 ноя 2009, 19:22

26 дек 2009, 00:08

1) извини но лаве нету...
1. if i>sa then
sa:=(sa+a)/i;
+ writeln('element nomer ',i,' bilshe serednyogo arefmetuchnogo'); уже после цикла
сам понимаешь что делаешь? фигня какая-то.

так если sa я поставлю перед IF то результат не измениться...
а после цикла что? ведь мне надо вывести номер элемента....
Newbie
Сообщения: 142
Зарегистрирован: 06 сен 2009, 19:45

26 дек 2009, 00:15

дак ты чо делаешь этим циклом?
как я понимаю пункт 2.
у тя уже есть сумма массива (s) находишь средее арифметическое s := s / 13; дальше идешь циклом
for i:=1 to 13 do
if i>s then
writeln('element nomer ',i,' bilshe serednyogo arefmetuchnogo');

вот и вся задача)

а то что ты ищешь не есть средее арифметическое
Ответить