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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2012, 20:51   #1
mTRIX
 
Регистрация: 01.01.2012
Сообщений: 5
По умолчанию Ввод массива

Как сделать ввод массива через Edit или Memo?
Нужно найти максимальный элемент, все работает, но вводить нужно пользователю.
Код:
#include <stdio.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i,maxOtr;
int a[7]={1,2,3,4,5,6,7};
for (i=0; i<=6; i++)
        maxOtr=a[0];
for (i=1; i<=6; i++)
	if (a[i]>maxOtr && a[i]>0)
maxOtr=a[i];
Edit1->Text=IntToStr(maxOtr);
}
mTRIX вне форума Ответить с цитированием
Старый 04.11.2012, 21:28   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
{
int i,m,maxOtr;
for (i=0; i<Memo->Lines->Count; i++){
        m=StrToInt(Memo->Lines[i]);
	if (m>maxOtr && m>0) maxOtr=m;
}
Edit1->Text=IntToStr(maxOtr);
}
Пользователь заполняет Мемо - каждая строчка - новый элемент массива. Массив целых.
Подходит?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.11.2012, 21:44   #3
mTRIX
 
Регистрация: 01.01.2012
Сообщений: 5
По умолчанию

Cannot convert TStrings to AnsiStrings
mTRIX вне форума Ответить с цитированием
Старый 04.11.2012, 22:20   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Возможно Memo->Lines->Strings[i], я не спец в Бульбульдере
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.11.2012, 23:08   #5
mTRIX
 
Регистрация: 01.01.2012
Сообщений: 5
По умолчанию

Шарил, шарил, нашарил вот такую вот рабочую фишку(под себя конечно подредактил), может кому пригодится.
Поясню. Вводится массив в Edit1 через пробел, находится наибольший элемент.
Код:
#include <stdio.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString buf,s;
int i,k=0,mas[7],maxOtr;
s = Edit1->Text;
for(i=1,buf="";i<=s.Length()+1;i++)
 {
  if(i==s.Length()+1)
   {
    mas[k++] = StrToInt(buf);
    break;
   }
  if(s[i]==' ')
   {
    mas[k++] = StrToInt(buf);
    buf = "";
   }
  buf += s[i];
 }
for (i=0; i<=6; i++)
        maxOtr=mas[0];
for (i=1; i<=6; i++)
	if (mas[i]>maxOtr && mas[i]>0)
maxOtr=mas[i];
Edit2->Text=IntToStr(maxOtr);
}
mTRIX вне форума Ответить с цитированием
Старый 05.11.2012, 17:38   #6
Nuklon
Форумчанин
 
Аватар для Nuklon
 
Регистрация: 05.04.2012
Сообщений: 134
По умолчанию

Вариант через TEdit
Код:
   AnsiString ds = Edit1->Text;
   char* s  = ds.c_str();
   int imax  = 0;

   s  = strtok(s, " \t");
   if(s != NULL)
         imax = StrToInt(s);

   int k;
   while(s != NULL) {
       if((k = StrToInt(s)) > imax)
           imax = k;
      s = strtok(NULL, " \t");
  }

  ShowMessage(IntToStr(imax));
Nuklon вне форума Ответить с цитированием
Старый 13.11.2012, 00:14   #7
Mr.Fox
 
Аватар для Mr.Fox
 
Регистрация: 11.11.2012
Сообщений: 6
По умолчанию

Опечатка:
Код:
{
int i,m,maxOtr;
for (i=0; i<Memo->Lines->Count; i++)
{
    m=StrToInt(Memo->Lines[i]);
	if (m>maxOtr && m>0) maxOtr=m;
}
Edit1->Text=IntToStr(maxOtr);
}
Mr.Fox вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зацикливает ввод массива Яна_Max Помощь студентам 2 07.11.2011 00:58
Ввод массива из файла aank10 C++ Builder 2 09.10.2011 12:46
ввод массива TotKtoNado БД в Delphi 16 19.06.2011 18:01
Ввод элементов массива! d00ker Помощь студентам 2 24.10.2010 13:53
гибкий ввод массива Ananim-Pbl6ak Паскаль, Turbo Pascal, PascalABC.NET 3 14.05.2009 22:42