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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2013, 22:50   #1
MangoDGJ
Пользователь
 
Регистрация: 29.05.2013
Сообщений: 20
По умолчанию Помогите с массивом

Задание : найти столбец с наибольшим отрицательным элементом
Вот код но что то работает не так , помогите пожалуйста!!!
Код:
{
  int a[100][100] ;
  for (int i=0;i>=StringGrid1->RowCount;i++)
  for (int j=0;j>=StringGrid1->ColCount;j++)
      {
    a[i][j]=StrToInt(StringGrid1->Cells[i][j]);
      }
  int max = 0;
  int s = -StringGrid1->ColCount;
for (int i=0;i>=StringGrid1->RowCount;i++)
   {
     int k = 0;
        for (int j=0;j>=StringGrid1->ColCount;j++)
        if (a[j, i] < 0)
          k=k+1;
      if (k > max)
        {
          max= k;
         int s = i ;
        }
    }

Последний раз редактировалось Stilet; 25.11.2013 в 13:26.
MangoDGJ вне форума Ответить с цитированием
Старый 25.11.2013, 06:24   #2
nikmoon
Форумчанин
 
Регистрация: 13.11.2013
Сообщений: 149
По умолчанию

Вот если есть такой код:

Код:
StringGrid1->RowCount = 10;
for (int i=0;i>=StringGrid1->RowCount;i++)
{
}
Как думаешь, сколько раз цикл выполнится?
nikmoon вне форума Ответить с цитированием
Старый 25.11.2013, 12:19   #3
Shad0wF1rst
Форумчанин
 
Регистрация: 11.01.2013
Сообщений: 149
По умолчанию

Цитата:
Сообщение от MangoDGJ Посмотреть сообщение
Задание : найти столбец с наибольшим отрицательным элементом
Вот код но что то работает не так , помогите пожалуйста!!!
PHP код:
{
  
int a[100][100] ;
  for (
int i=0;i>=StringGrid1->RowCount;i++)
  for (
int j=0;j>=StringGrid1->ColCount;j++)
      {
    
a[i][j]=StrToInt(StringGrid1->Cells[i][j]);
      }
  
int max 0;
  
int s = -StringGrid1->ColCount;
for (
int i=0;i>=StringGrid1->RowCount;i++)
   {
     
int k 0;
        for (
int j=0;j>=StringGrid1->ColCount;j++)
        if (
a[ji] < 0)
          
k=k+1;
      if (
max)
        {
          
maxk;
         
int s ;
        }
    } 
Не понимаю людей которые любят все усложнять. Вот другой вариант твоей задачи:
Код:
  int maxEl = 0;
  int count = -1;
  for (int i=0;i>StringGrid1->ColCount;i++)
  for (int j=0;j>StringGrid1->RowCount;j++)
      {
       int el = StrToInt(StringGrid1->Cells[i][j]);
       if (el < maxEl) {
           maxEl = el;
           count = i;
       }
      }
Это смотрится гораздо лучше неправда ли?!
И кстати тут не понятно а что делать если два одинаковых максимальных элемента в разных колонках будет?!
насчет условия выхода из цикла не забывайте что если массив начинается с 0го индекса то нужно строгое неравенство.
Может это и чушь, но это моя чушь и я ее никому не отдам.

Последний раз редактировалось Shad0wF1rst; 25.11.2013 в 12:27.
Shad0wF1rst вне форума Ответить с цитированием
Старый 25.11.2013, 12:58   #4
nikmoon
Форумчанин
 
Регистрация: 13.11.2013
Сообщений: 149
По умолчанию

Цитата:
Сообщение от Shad0wF1rst Посмотреть сообщение
Код:
  int maxEl = 0;
  int count = -1;
  for (int i=0;i>StringGrid1->ColCount;i++)
  for (int j=0;j>StringGrid1->RowCount;j++)
      {
       int el = StrToInt(StringGrid1->Cells[i][j]);
       if (el < maxEl) {
           maxEl = el;
           count = i;
       }
      }
Бессмысленный код. См. мой вопрос.
nikmoon вне форума Ответить с цитированием
Старый 25.11.2013, 13:05   #5
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

Цитата:
Как думаешь, сколько раз цикл выполнится?
пока не устанет от бессмыслицы...
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!
SaLoKiN вне форума Ответить с цитированием
Старый 25.11.2013, 14:37   #6
Shad0wF1rst
Форумчанин
 
Регистрация: 11.01.2013
Сообщений: 149
По умолчанию

Цитата:

Код:
  int maxEl = 0;
  int count = -1;
  for (int i=0;i<StringGrid1->ColCount;i++)
  for (int j=0;j<StringGrid1->RowCount;j++)
      {
       int el = StrToInt(StringGrid1->Cells[i][j]);
       if (el < maxEl) {
           maxEl = el;
           count = i;
       }
      }
Бессмысленный код. См. мой вопрос.
nikmoon этот код удовлетворяет решению задания, то есть находит номер столбца с максимальным отрицательным элементом, по этому ваше замечание что код бессмыслен, само по себе бессмысленно. А насчет вашего вопроса сколько выполняется цикл, я в том же ответе написал
Цитата:
насчет условия выхода из цикла не забывайте что если массив начинается с 0го индекса то нужно строгое неравенство.
Хоть он и не мне предназначался. По этому внимательней читайте

Сознаюсь переделывая код скопировал все вместе с циклами не заметив действительную бессмысленность условия в цикле, но не стоит так высокомерно себя вести.
Может это и чушь, но это моя чушь и я ее никому не отдам.

Последний раз редактировалось Shad0wF1rst; 25.11.2013 в 14:49.
Shad0wF1rst вне форума Ответить с цитированием
Старый 25.11.2013, 16:03   #7
nikmoon
Форумчанин
 
Регистрация: 13.11.2013
Сообщений: 149
По умолчанию

Shad0wF1rst, и на фига эта стена текста, если я прав?
з.ы. люблю помогать людям, но ненавижу делать что-то за других.

Последний раз редактировалось nikmoon; 25.11.2013 в 16:10.
nikmoon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с массивом Dimati87 Помощь студентам 1 04.03.2009 09:10
Помогите с массивом mishel Общие вопросы Delphi 1 04.03.2007 00:15