Коричневая ряса джедая, так же как и броня клонов, давала ей в некотором роде анонимность; никто не спрашивал, зачем она спускается в эти трущобы – потому что джедаи часто занимались подобной работой на дне общества, а кроме того – она была приятельницей Скираты.
В этой программе нужно найти все числа в массиве, которые делятся на 3 без остатка, а затем посчитать среднее арифметическое этих чисел.
Код
program bb;
var i,h,sum:integer; sred:real; A,R: array [0..1000] of integer;
begin h:=0; sum:=0;
for i:=0 to 30 do begin A[i]:=random(1000); if(A [i]mod 3 = 0) then {если число делится на 3 без остатка, заносим его в другой массив} begin R[h]:=A[i]; writeln(' ',R[h]); h:=h+1; {добавляем единичку, тут смотри коммент ниже} end; end;
for h:=0 to h-1 do {обратите внимание на h-1} sum:=sum + R[h]; {складываем все числа в новом массиве}
sred:=sum/h; writeln('Средний балл', sred:2:1);
end.
Код
program bb;
const N=3; var i,x,y:integer; s:real; a: array [1..N] of integer; begin
for i:=1 to N do readln(a[i]);
s:=0; x:=0;
for i:=1 to N do if(a [i]mod 3 = 0) then begin s:=s+a[i]; x:=x+1; end;
Дата: Понедельник, 03.06.2013, 21:40 | Сообщение # 3
Добрый админ
Сообщений: 2339
Статус:
Цитата (DarthVader)
Нерабочий фрагмент кода. Скорее всего, имелось ввиду
Цитата (Цитата (Fess))
for i:=0 to h-1
Нет, код совершенно правильный, имелось в виду именно for h:=0 to h-1 Попробуй измени на i и посмотри на сумасшедшее число, который тебе будет выводить скрипт)
Дата: Понедельник, 03.06.2013, 22:51 | Сообщение # 4
Группа: Удаленные
Но тогда программа просто зациклится. При обращении к h-1 h уже равно нулю (присваивание произошло только что), и, соответственно, h-1=-1. А если выполнять цикл от нуля до минус единицы, то конца этому не будет) Я в предыдущем посте не учёл только одного: