Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Одномерный массив (http://www.tehnari.ru/f41/t74899/)

Андрей Романюк 13.06.2012 21:45

Одномерный массив
 
Ввод массивов осуществить в цикле при помощи генератора случайных чисел. Размерность массива задать с клавиатуры по желанию. Вывод массивов производите на чистом экране. Двумерные массивы выводите в виде таблиц.
Результаты решения вашей задачи выводите с пояснительными текстами, каждое с новой строки. Если в массиве произошли изменения по заданию, то необходимо еще раз вывести массив на экран.

Если в массиве сумма четных элементов положительна, найти максимальный элемент, иначе – все элементы удвоить.

Код:

{ђ®¬**оЄ 251}
program romanuk9_2;
uses crt;
type Mas = array[1..100] of integer;
var  A:mas;
    b,i,c,s:integer;
begin
  clrscr;

  writeln('введите кол-во элементов массива*');
  readln(b);
  writeln;writeln;
  randomize;
  for i:=1 to b do begin

    A[i]:=random(200)-100;
    write(A[i]:5);
    end;
    writeln;
    s:=0;
    for i:=1 to b do begin
    if A[i] mod 2 <>0 then s:=s
    else
    S:=s+A[i];
    end;
    writeln(s,' -сумма нечетных элементов');
    c:=1;
    for i:=1 to b do begin
    if s<0 then A[i]:=A[i]*2
    end;
    if s>0 then
    for i:=2 to b do
    if A[i]<A[c] then A[i]:=A[c];
    writeln(A[i],' max');

    writeln;writeln;
      readln;
end.

проблемы:
1)неправильно считает сумму
2)всегда выводит мах элемент( не зависимо от получившейся суммы)

Андрей Романюк 13.06.2012 22:29

и так, я чуток посидел, и у меня получилось правильно выводить мах элемент:он его правильно находит и выводит когда надо( при сумме>0),
но вот сумму он все равно не правильно находит, и я никак не могу понять почему?????
и даже если он делает сумму положительной, то массив умноженный на 2 он не выводит(

Андрей Романюк 13.06.2012 23:17

теперь осталась одна проблема:правильное нахождение суммы четных элементов.....
вот моя "исправленная программа":
Код:

{ђ®¬**оЄ 251}
program romanuk9_2;
uses crt;
type Mas = array[1..100] of integer;
var  A:mas;
    b,i,c,s,max:integer;
begin
  clrscr;
  s:=0;
  writeln('введите кол-во символов массива*');
  readln(b);
  writeln;writeln;
  randomize;
  for i:=1 to b do begin

    A[i]:=random(200)-100;
    write(A[i]:5);
    end;
    writeln;

    for i:=1 to b do
    if A[i] mod 2=0 then
    s:=s+A[i];
    writeln(s,' -сумма четных элементов');
    c:=1;


    for i:=2 to b do
    if A[c]<A[i] then c:=i;
    max:=A[c];



    if s<0 then
    for i:=1 to b do begin
    A[i]:=A[i]*2; write(A[i],' ');
    end;
    if s>0 then
    writeln(max);


      readln;
end.


Андрей Романюк 13.06.2012 23:33

все, ошибку нашел.....черт, так обидно когда по тупости сидишь, и бред получаешь,а ошибка в букве со скобками......ааааа!!!


Часовой пояс GMT +4, время: 15:07.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.