Visual c++, массивы

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Visual c++, массивы

Re: Visual c++, массивы

Zazeek » 20 фев 2009, 23:42

atavin-ta, Благадарю.

Re: Visual c++, массивы

atavin-ta » 18 фев 2009, 10:09

У тебя уже функция. В данном случае - обработчик события. Поменяй заголовок и разнеси декларации.
[syntax=C]
void Swap(float *a);
{
int i,max=0,imax;
max=a[0];imax=0;
for(i=1;i<18;i++)
if(a>max){max=a;imax=i;}
a[imax]=a[17];
a[17]=max;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float a[18];
int i;
for(i=0;i<18;i++)a=StrToFloat(Memo1->Lines->Strings);
Swap(a);
Memo2->Clear();
for(i=0;i<18;i++)Memo2->Lines->Add(FloatToStr(a));
}
[/syntax]
Если тебе нужны 4 функции:
1. обработчик,
2. заполнение массива,
3. поиск максимума и перестановкой
4. вывод массива,
то делай по аналогии. Обработчик в этом случае должен хранить сам массив и последовательно вызывать остальные функции. Каждая функция должна хранить в локальных данных ту инфу, которая нужна для её подзадачи. И максимальный элемент не вычисляется, а ищется.

Visual c++, массивы

Zazeek » 17 фев 2009, 23:50

Прошу о помощи
Задание: " вычислить максимальный элемент и поменять его местами с последним"
Ниже код. Нужна такая же, только с использованием функции. (массив из 18 вещественных чисел)

Код:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
float a[18];int i,max=0,imax;
for(i=0;i<18;i++)a=StrToFloat(Memo1->Lines->Strings);
max=a[0];imax=0;
for(i=1;i<18;i++)
if(a>max){max=a;imax=i;}
a[imax]=a[17];
a[17]=max;
Memo2->Clear();
for(i=0;i<18;i++)Memo2->Lines->Add(FloatToStr(a));
}

Заранее спасибо!

Вернуться к началу