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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.09.2015, 17:39   #1
Otar4ik
Форумчанин
 
Регистрация: 16.04.2010
Сообщений: 123
По умолчанию Неправильно выводит количество строк и столбцов

{Дана целочисленная матрица размера 5 x 10. Вывести номер ее первой1|последней2 строки3|столбца4, содержащего равное количество положительных и отрицательных элементов (нулевые элементы не учитываются).Если таких строк3|столбцов4 нет, то вывести 0.}

Пошагово смотрел на компиляторе он начинает считает строки и столбцы
когда неравное количество положительных и отрицательных элементов.

Код:
program var3_8;

var
   a: array[1..6, 1..11] of integer;
   n, m, i, j, k: integer;
   f: boolean;
   key: integer;

begin
   writeln('1 - Вывести номер ее первой строки, содержащего равное количество положительных и отрицательных элементов');
   writeln('2 - Вывести номер ее последней столбца, содержащего равное количество положительных и отрицательных элементов');
   readln(key);
   write('Введите количество строк и столбцов: ');
   readln(m, n);
   for i := 1 to m do
   begin
      for j := 1 to n do
      begin
         a[i, j] := random(199) - 99;
         write(a[i, j]:4);
      end;
      writeln;
   end;
   case key of
      1:
         begin
            for i := 1 to m do
            begin
               k := 0;
               for j := 1 to m do
                  if a[i, j] > 0 then inc(k)
                  else dec(k);
               if k = 0 then
               begin
                  f := true;
                  break;
               end;
            end;
            if f then writeln('Номер первой строки  = ', i)
            else writeln('Нет таких строк');
            readln;
         end;
      2:
         begin           
           for i:=1 to n do
  begin
    k:=0;
    for j:=1 to n do
      if a[i,j]>0 then inc(k)
        else dec(k);
    if k=0 then
    begin
      f:=true;
      break;
    end;
  end;
  if f then writeln('Номер столбца = ',j)
    else writeln('Нет таких столбцов');         
         end;
   end;   
end.
Otar4ik вне форума Ответить с цитированием
Старый 06.09.2015, 21:36   #2
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Код:
program var3_8;

var
   a: array[1..6, 1..11] of integer;
   n, m, i, j, k: integer;
   f: boolean;
   key: integer;

begin
   randomize;
   writeln('1 - Вывести номер ее первой строки, содержащего равное количество положительных и отрицательных элементов');
   writeln('2 - Вывести номер ее последней столбца, содержащего равное количество положительных и отрицательных элементов');
   readln(key);
   write('Введите количество строк и столбцов: ');
   readln(m, n);
   for i := 1 to m do
   begin
      for j := 1 to n do
      begin
         a[i, j] := random(199) - 99;
         write(a[i, j]:4);
      end;
      writeln;
   end;
   case key of
      1:
         begin
            for i := 1 to m do
            begin
               k := 0;
               for j := 1 to n do
                  if a[i, j] > 0 then inc(k)
                  else
                     if a[i, j] < 0 then dec(k);
               if k = 0 then break;
            end;
            if k = 0 then writeln('Номер первой строки  = ', i)
            else writeln('Нет таких строк');
         end;
      2:
         begin
            for i := n downto 1 do
            begin
               k := 0;
               for j := 1 to m do
                  if a[j, i] > 0 then inc(k)
                  else
                     if a[j, i] < 0 then dec(k);
               if k = 0 then break;
            end;
            if k = 0 then writeln('Номер последнего столбца = ', i)
            else writeln('Нет таких столбцов');
         end;
   end;
   readln;
end.
Подправил, должно работать.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 07.09.2015, 09:38   #3
Otar4ik
Форумчанин
 
Регистрация: 16.04.2010
Сообщений: 123
По умолчанию

Большое спасибо вам!
Otar4ik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
неправильно выводит бинарное дерево KONDR1996 Общие вопросы C/C++ 1 16.04.2015 08:12
помогите сделать - программа выводит текст на экран, определяет количество предложений и количество слов (язык С) карен1 Фриланс 4 26.12.2013 21:35
с++,циклическая очередь, сразу норм выводит, а потом на где-то логика нарушается и неправильно выводит nati_94 Помощь студентам 2 17.03.2013 14:29
Сканирования строк. Зная количество строк и первый элемент, это количество символов с троке. dimon9 Общие вопросы C/C++ 8 02.11.2012 22:40
вывод номеров столбцов матрицы и подсчитать количество этих столбцов Vitalina69 Помощь студентам 2 15.02.2011 21:52