Вводиться 10 чисел. Выяснить, что встречается раньше: отрицательное число или ноль. Если раньше 0, то выяснить разницу между макс. и мин. числом, иначе вывести среднеарифметическое всех положительных чисел.
Krjuger
3.06.2011 20:10
В чем именно проблемы?
vigun
3.06.2011 20:11
Я среднеарифметическое нашел, а максимум и минимум не могу. Вот моя прога, помоги исправить ошибки.
var a,max,min,s,r,c,k,m,n,i: integer;
begin
readln(max);
readln(min);
s:=0;
k:=0;
for i:=3to10dobegin
readln(a);
if a>0thenbegin
s:=s+a;
k:=k+1;
if a:=0thenbegin
n:=i;
end;
if a<0thenbegin
m:=i;
end;
end;
if a>max thenbegin
max:=a;
end;
if a<min thenbegin
min:=a
end;
end;
r:=max-min;
if max>0thenbegin
c:=(s+max)/k;
endelsebegin
c:=s/k;
end;
if n<m thenbegin
writeln( r);
endelse
writeln( c);
end;
end.
М
Теги!!
Krjuger
3.06.2011 21:35
Эм,все делается немного по другому.Для начала проще завести массив в котором будут храниться все эти 10 цифр,согласись было бы неплохо видеть все вводимые данные.
const
n=10;
var
mas : array [1..n]of real;
i,S : integer;
max,min : real;
razn:real;
flag : integer;
begin
S:=0;
flag:=0;
for i:=1to n do
read(mas[i]);
i:=1;
while flag=0dobeginif mas[i]<0then
flag:=1;
if mas[i]=0then
flag:=2;
inc(i);
end;
if flag=2thenbegin
i:=1;
max:=mas[i];
min:=mas[i];
for i:=2to n dobeginif mas[i]>max then
max:=mas[i];
if mas[i]<min then
min:=mas[i];
end;
razn:=max-min;
writeln('Max:',max:0:2);
writeln('Min:',min:0:2);
writeln('Raznost*:',razn:0:2);
end;
end.
Вот так можно найти максимум и минимум и их разность,если раньше 0,дальше я думаю сам сможеш осилить? Еще возник вопрос
Цитата
иначе вывести среднеарифметическое
тобиш среднее арифметическое надо выводить не только когда отрицательное число раньше,но и ,если в массиве нету ни отрицательных ни нуля????Если да,то часть с flag можно упростить..
Кстати быстрельно измени название темы,оно должно быть информативным, и в твоем втором посте заключи код программы в теги.А то админ придет и накажет.
Легко Без тегов CODE движок форума сам преобразует C и R в скобочках к знакам копирайта/Registered соответственно.
Цитата
i:=1;
while flag=0dobeginif mas[i]<0then
flag:=1;
if mas[i]=0then
flag:=2;
inc(i);
end;
А введу я ВСЕ элементы больше 0 - что будет? Вылет за границу массива и кирдык программе? Нехорошо...
Кстати, к автору - тот же вопрос: что делать в случае, когда все элементы ненулевые и неотрицательные?
Krjuger
3.06.2011 23:43
Ну да нехорошо,сделал сначала,чторбы при нуле работало, а потом посмотрел,если первый нуль, а не отрицательный(( пришлось переделывать,а протестить когда все элементы больше нуля забыл(( Благо лечиться несложно
while flag=0and i<=n do
vigun
4.06.2011 3:49
Цитата(Krjuger @ 3.06.2011 20:35)
Эм,все делается немного по другому.Для начала проще завести массив в котором будут храниться все эти 10 цифр,согласись было бы неплохо видеть все вводимые данные.
const
n=10;
var
mas : array [1..n]of real;
i,S : integer;
max,min : real;
razn:real;
flag : integer;
begin
S:=0;
flag:=0;
for i:=1to n do
read(mas[i]);
i:=1;
while flag=0dobeginif mas[i]<0then
flag:=1;
if mas[i]=0then
flag:=2;
inc(i);
end;
if flag=2thenbegin
i:=1;
max:=mas[i];
min:=mas[i];
for i:=2to n dobeginif mas[i]>max then
max:=mas[i];
if mas[i]<min then
min:=mas[i];
end;
razn:=max-min;
writeln('Max:',max:0:2);
writeln('Min:',min:0:2);
writeln('Raznost*:',razn:0:2);
end;
end.
Вот так можно найти максимум и минимум и их разность,если раньше 0,дальше я думаю сам сможеш осилить? Еще возник вопрос
тобиш среднее арифметическое надо выводить не только когда отрицательное число раньше,но и ,если в массиве нету ни отрицательных ни нуля????Если да,то часть с flag можно упростить..
Кстати быстрельно измени название темы,оно должно быть информативным, и в твоем втором посте заключи код программы в теги.А то админ придет и накажет. Как ты эти символы после Wrilteln получил?))
Cможешь отправить мне всю программу полностью со среднеарифметическим и с максимумом и минимумо, ато я что то запутался!
Lapp
4.06.2011 5:05
Цитата(vigun @ 4.06.2011 0:49)
Cможешь отправить мне всю программу полностью со среднеарифметическим и с максимумом и минимумо, ато я что то запутался!
Что-то распутывайся, приятель. Мы тут не для того, чтоб ты что-то сдал, а для того, чтоб ты что-то понял . Говори, где запутался.
vigun
4.06.2011 5:06
Цитата(Lapp @ 4.06.2011 4:05)
Что-то распутывайся, приятель. Мы тут не для того, чтоб ты что-то сдал, а для того, чтоб ты что-то понял . Говори, где запутался.
Я не знаю как теперь сюда всунуть среднеарифметичекое!
Lapp
4.06.2011 5:26
Цитата(vigun @ 4.06.2011 2:06)
Я не знаю как теперь сюда всунуть среднеарифметичекое!
А пробовал?
vigun
4.06.2011 5:27
Цитата(Lapp @ 4.06.2011 4:26)
А пробовал?
да
Lapp
4.06.2011 6:23
Цитата(vigun @ 4.06.2011 2:27)
да
Покажи, как.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.