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

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

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

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

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

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

Программа находить столбец с наибольшим отрицательный элементом ,нужно поправить чтобы он находил с наибольшим ИЗ отрицательных элементов, то есть если в массиве будут отрицательных элементы -9 -3 -1 то он выведет -1 тк -9,-3<-1


Код:
{
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;
Edit3->Text=IntToStr(i+1);
}  }}
побывал изменить условие на
Код:
if ((el<0)&&(maxEl<el))
работает не правильно

Последний раз редактировалось MangoDGJ; 02.12.2013 в 00:55.
MangoDGJ вне форума Ответить с цитированием
Старый 02.12.2013, 08:27   #2
nikmoon
Форумчанин
 
Регистрация: 13.11.2013
Сообщений: 149
По умолчанию

Непонятно, для чего переменная count.
Код без нее для заданного условия:
Код:
#include <limits.h>
int maxNeg = INT_MIN;
for (int i=0;i<StringGrid1->ColCount;i++)
{
  for (int j=0;j<StringGrid1->RowCount;j++)
  {
    int elem = StrToInt(StringGrid1->Cells[i][j]);
    if (elem < 0)
    {
      maxNeg = (maxNeg > elem) ? maxNeg : elem;
    }
  }
}
На выходе:
если (maxNeg == INT_MIN), не найдено ни одного отрицательного числа
иначе maxNeg = наибольшее из найденных отрицательных чисел (наиболее близкое к нулю).

И еще, мне почему то кажется, что ColCount и RowCount нужно местами поменять.
nikmoon вне форума Ответить с цитированием
Старый 02.12.2013, 08:50   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от nikmoon Посмотреть сообщение
Непонятно, для чего переменная count.
думаю, что изначально она нужна была, чтобы найти СТОЛБЕЦ, в котором находится нужный элемент! Ведь в задании:
Цитата:
Программа находить столбец с наибольшим отрицательный элементом ,нужно поправить....
впрочем, он не используется в коде. Нужно его использовать или нет, зависит от того, какую же задачу на самом деле нужно решить TC.



Цитата:
Сообщение от nikmoon Посмотреть сообщение
И еще, мне почему то кажется, что ColCount и RowCount нужно местами поменять.
Нет, это нормально.
Местами можно поменять, но тогда и в Cells надо параметры местами менять, в этом "странном" TStringGrid перевёрнутая идексация ячеек - сначала указывается индекс СТОЛБЦА, потом индекс СТРОКИ...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.12.2013, 20:18   #4
MangoDGJ
Пользователь
 
Регистрация: 29.05.2013
Сообщений: 20
По умолчанию

[QUOTE=Serge_Bliznykov;1308900]


объясни пожалуйста что делает эта строчка , не могу понять
maxNeg = (maxNeg > elem) ? maxNeg : elem;
MangoDGJ вне форума Ответить с цитированием
Старый 02.12.2013, 23:16   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
объясни пожалуйста что делает эта строчка , не могу понять
Код:
maxNeg = (maxNeg > elem) ? maxNeg : elem;
вообще-то, это не моя строчка кода.
но пояснить, что она делает, могу.
для начала её функциональный аналог (может быть, так будет понятнее):
Код:
if (maxNeg <= elem) {
   maxNeg = elem;
}
а теперь вернёмся к строке:
Код:
maxNeg = (maxNeg > elem) ? maxNeg : elem;
переменной maxNeg присвоить: если maxNeg больше elem, то присвоить значение maxNeg, иначе присвоить значение elem.

стало яснее?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.12.2013, 23:50   #6
MangoDGJ
Пользователь
 
Регистрация: 29.05.2013
Сообщений: 20
По умолчанию

Спасибо тебе большое,
Программа правда не работает то что выше человек предложил
MangoDGJ вне форума Ответить с цитированием
Старый 03.12.2013, 05:42   #7
nikmoon
Форумчанин
 
Регистрация: 13.11.2013
Сообщений: 149
По умолчанию

Ну так разберись, почему не работает ))
nikmoon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с кодом lewka-serdceed Общие вопросы Delphi 1 22.06.2009 00:25
Помогите с кодом eu8cc Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 12 07.06.2009 01:05
Помогите с кодом DM_bite Помощь студентам 12 02.08.2008 11:40
Помогите с кодом Кронос Общие вопросы Delphi 6 04.05.2008 21:13