G
Guest
Задача:Найти произведение элементов одномерного массива, расположенных между максимальным и минимальным элементами.
Язык с++.
Builder 6
Пробовала по разному, но толком ничего не выходит, вот неработающий кусок программы:
в начале объявлено:
char s[200];
int A[50],dim=1;
затем:
представлено 2 способо загнать эл-ты строки в массив А но ни то, ни то не работает......подскажите как это сделать кто знает.
Язык с++.
Builder 6
Пробовала по разному, но толком ничего не выходит, вот неработающий кусок программы:
в начале объявлено:
char s[200];
int A[50],dim=1;
затем:
C++:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (Edit2->Text!="")
{
dim=strlen(Edit2->Text.c_str());
Label4->Caption="размерность массива: "+FloatToStr(dim);
for (int i=0; i<dim; i++)
{
A[i]=Edit2->Text[i];
}
/*
strcpy(s,Edit2->Text.c_str());
istringstream istr(s);
for( int i=0;i<dim;i++)
{
istr>>A[i];
} */
int max=0;
bool f=false;
for(int i=1; i<dim; i++)
if (A[max]<A[i])
{
max=i;
f=true;
}
if(!f && A[max]==A[1])
{
Label4->Caption= "Максимума нет";
}
Label4->Caption=IntToStr(A[max]);
int min=0;
for(int i=1; i<dim; i++)
if (A[min]>A[i])
{
min=i;
}
Label4->Caption=IntToStr(A[min]);
int pr; // искомое произведение
if ( min<max)
{
pr=1;
for (int i=min;i<=max;i++)
pr=pr*A[i];
}
else
{
pr=1;
for (int i=max;i<=min;i++)
pr=pr*A[i];
}
Label4->Caption=IntToStr(pr);
}
}
представлено 2 способо загнать эл-ты строки в массив А но ни то, ни то не работает......подскажите как это сделать кто знает.