Форумы-->Форум для внеигровых тем-->
Автор | хелп в TurboPascal |
Помогите плиз. Чёт не вдуплился в задачю с масивами.
даны массивы a(9),b(12),c(15) вещестивенных чисел. Обнулить и вывести на экран тот массив чьё произведение положительных элементов минимально. Вывести на печать произведение для каждого массива.
Ps матрицу я построить смогу а вот как Обнулить и вывести на экран я хз. Думаю с помошью if then.
Ps жду любие советы по теме. | первым проходом ищем, вторым проходом обнуляем, тривиально же
если задача олимпиадная или сильно критичная производственная, я бы ещё рекомендовал иногда сдвигать/делить результаты (от переполнения типа подальше) | первым проходом ищем, вторым проходом обнуляем, тривиально же
не совсем понял смысл сказаного.
если задача олимпиадная или сильно критичная производственная
не задачка тупа на зачёт. ( ну щя атистация идёт) | Решение ниже. Но если ты такую задачу не можешь сам сделать, то я не представляю, как ты будешь решать задачи на два-три порядка сложнее.
var a:array [1..9] of integer;
var b:array [1..12] of integer;
var c:array [1..15] of integer;
var m:array [1..3] of integer;
var i,k,j:integer;
begin
for i:=1 to 3 do m[i]:=1;
for i:=1 to 9 do
begin
write('a[',i,']=');
readln(a[i]);
if (a[i]>0) then m[1]:=m[1]*a[i];
end;
for i:=1 to 12 do
begin
write('b[',i,']=');
readln(b[i]);
if (b[i]>0) then m[2]:=m[2]*b[i];
end;
for i:=1 to 15 do
begin
write('c[',i,']=');
readln(c[i]);
if (c[i]>0) then m[3]:=m[3]*c[i];
end;
k:=0;
for i:=1 to 3 do
if (m[i]>k) then begin k:=m[i]; j:=i; end;
if (j=1) then begin
for i:=1 to 9 do begin
a[i]:=0;
writeln(a[i]);
end;
end;
if (j=2) then begin
for i:=1 to 12 do begin
b[i]:=0;
writeln(b[i]);
end;
end;
if (j=3) then begin
for i:=1 to 15 do begin
c[i]:=0;
writeln(c[i]);
end;
end;
readln;
end. | СПС
паскаль зло я foxpro хорошо знаю.
А паскаль сдать то хочеться.
ps нужна будет выучю))
pps и ещё раз спасибо. Крою тему | тема закрыта by -Slavian- (2009-11-06 20:55:35) |
---|
К списку тем
|