Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2014, 21:42   #1
qwerty321456
 
Регистрация: 16.12.2014
Сообщений: 6
По умолчанию Если кол-во нечетных элементов массива A(n,m) больше 5, то найти среднее арифметическое отрицательных элементов каждой строки, ина

Если кол-во нечетных элементов массива A(n,m) больше 5, то найти среднее арифметическое отрицательных элементов каждой строки, иначе- удвоить все элементы массива.
Если удалить else, то он только удваивает, если не убирает...ошибка.

Код:
Program ilya18;
uses crt;
var a:array[1..10,1..10] of integer;
      i,j,n,m,s,k:integer;
begin
clrscr;
write('vved kol stolbcov' );
readln(n);
write('vved kol strok' );
readln(m);
for i:=1 to n do
for j:=1 to m do
   begin
    write('vved a[',i,':',j,']=');
    readln(a[i,j]);
   end;
 for i:=1 to n do
 for j:=1 to m do
    begin
     if (a[i,j] mod2)>0 then
      k:=k+1;
       for i:=1 to n do
        if (a[i,j] mod 2)=1 then a[i,j]>5;
         begin
          s:=0;
          for j:=1 to m do
           if a[i,j]<0 then
           s:=s+a[i,j];
          writeln('suuma otric elementov', i, 'strok= ', s);
         end;
        end;
      else
       begin
        for i:=1 to n do
        for j:=1 to m do
        a[i,j]:=a[i,j]*2;
       end;
    end;
readln;
end.

Последний раз редактировалось Stilet; 24.12.2014 в 07:58.
qwerty321456 вне форума Ответить с цитированием
Старый 24.12.2014, 08:06   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Код:
Program ilya18;
uses crt;
const n=10;m=10;
var a:array[1..n,1..m+2] of integer;
      i,j,s,k,l:integer;
begin
clrscr;

for i:=1 to n do 
for j:=1 to m do
   begin
    write('vved a[',i,':',j,']=');
    readln(a[i,j]);
     if even(a[i,j]) then ink(k);
     if a[i,j]<0 then begin a[i,11]:=a[i,11]+a[i,j]; inc(a[i,12]); end;
   end;

if k>5 then for i:=1 to n do writeln(a[i,11]/a[i,12])
else begin
 for i:=1 to n do for j:=1 to m do a[i,j]:=a[i,j]*2;
 for i:=1 to n do begin
  for j:=1 to m do begin
   write(a[i,j]:10);
  end; writeln;
 end;
end;

readln;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.12.2014, 15:05   #3
qwerty321456
 
Регистрация: 16.12.2014
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
[CODE]
if even(a[i,j]) then ink(k);
/CODE]
В этой строке показывает ошибку
qwerty321456 вне форума Ответить с цитированием
Старый 24.12.2014, 15:25   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

замените строчку
Цитата:
Код:
if even(a[i,j]) then ink(k);
на строку:
Код:
if odd(a[i,j]) then inc(k);
Вам же нечётные нужно подсчитать? Вот функция Odd() и проверяет число на нечётность.


похоже, что Виталий прикалывается...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.12.2014, 15:50   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
похоже, что Виталий прикалывается...
Неа. Просто путаю...
Цитата:
В этой строке показывает ошибку
Угадай что я должен сказать в ответ на эту фразу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.12.2014, 16:23   #6
qwerty321456
 
Регистрация: 16.12.2014
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
замените строчку

на строку:
Код:
if odd(a[i,j]) then inc(k);
Вам же нечётные нужно подсчитать? Вот функция Odd() и проверяет число на нечётность.


похоже, что Виталий прикалывается...
Не знал...Думал только так: "mod 2=1"
qwerty321456 вне форума Ответить с цитированием
Старый 24.12.2014, 16:33   #7
qwerty321456
 
Регистрация: 16.12.2014
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
if k>5 then for i:=1 to n do writeln(a[i,11]/a[i,12])
Ошибка 200: деление на 0.
Остальное все считает(кроме сред. ариф.), если ее изменить, то считает только посл. элем. строки.
qwerty321456 вне форума Ответить с цитированием
Старый 24.12.2014, 16:46   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Ну не было отрицательных в этой строке, проверяй до деления и не дели
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти среднее арифметическое элементов каждой строки матрицы Q (l, m) и отнять его от элементов этой строки ( язык С ) FYNZIK Помощь студентам 3 13.02.2014 21:44
найти среднее арифметическое значение положительных и отрицательных элементов массива A=(a[i][j]), i=1,2,...,n; j=1,2,...,m. Valentina2011 Общие вопросы C/C++ 2 15.12.2011 13:04
Делфи.среднее геометрическое элементов массива.среднее арифметическое каждой строки матрицы Karrina Помощь студентам 0 06.12.2010 18:32