У меня задание "найти произведение элементов массива между максимальным и минимальным по модулю".
Вот я начинаю искать максимальный, но ищет не верно, он напросто выводит 1 элемент массива.
n=StrToInt(Edit1->Text);
int i=0,a[10];
int pr=1;
int max = 0;
int min = 0;
for(int i=0;iCells[i][0]);
}
for(i=0; i<n; i++){
if (abs(a[i])Caption = "Число масимальное по модулю = "+IntToStr(max) ;
Другие языки программирования и технологии
Помогите с исправить ошибку, массивы, c++builder
if (abs(a[i]) - для всех, что не ноль оно и скажет, что максимально
Максимум можно так найти
int max = abs(a[0]);
int imax=0;
int min = abs(a[0]);
int imin=0;
for(int i=1; i max ) { max = a[i]; imax = i; }
if( abs(a[i]) < min ) { min = a[i]; imin = i; }
}
тогда произведение можно найти, только учесть, что imin и imax могут отличаться как в большую, так меньшую сторону и даже быть равны
Здесь режет, вот результат http://ideone.com/2dUthi
Максимум можно так найти
int max = abs(a[0]);
int imax=0;
int min = abs(a[0]);
int imin=0;
for(int i=1; i max ) { max = a[i]; imax = i; }
if( abs(a[i]) < min ) { min = a[i]; imin = i; }
}
тогда произведение можно найти, только учесть, что imin и imax могут отличаться как в большую, так меньшую сторону и даже быть равны
Здесь режет, вот результат http://ideone.com/2dUthi
парсер ответов сожрал половину кода, киньте его на pastebin
Где всё остальное?
Борис Полянчиков
http://pastebin.com/8EDw58hS
#include
#include
using namespace std;
void main()
{
srand(time(0));
const int n = 10;
int mas[n];
int min_index = 0, max_index = 0;
int result = 1;
for (unsigned int i = 0; i < n; i++)
{
mas[i] = rand() % 20 + 1;
cout << "mas[" << i << "] = " << mas[i] << endl;
}
//найдем max и min
for (unsigned int i = 1; i < n; i++) //да i = 1, так надо
{
if (abs(mas[min_index]) > abs(mas[i])) min_index = i;
if (abs(mas[max_index]) < abs(mas[i])) max_index = i;
}
if (min_index > max_index)
{
int temp = max_index;
max_index = min_index;
min_index = temp;
}
//перемножим
for (unsigned int i = min_index; i <= max_index; i++)
result *= mas[i];
cout << "min index = " << min_index << endl;
cout << "max index = " << max_index << endl;
cout << "result = " << result << endl;
}
#include
using namespace std;
void main()
{
srand(time(0));
const int n = 10;
int mas[n];
int min_index = 0, max_index = 0;
int result = 1;
for (unsigned int i = 0; i < n; i++)
{
mas[i] = rand() % 20 + 1;
cout << "mas[" << i << "] = " << mas[i] << endl;
}
//найдем max и min
for (unsigned int i = 1; i < n; i++) //да i = 1, так надо
{
if (abs(mas[min_index]) > abs(mas[i])) min_index = i;
if (abs(mas[max_index]) < abs(mas[i])) max_index = i;
}
if (min_index > max_index)
{
int temp = max_index;
max_index = min_index;
min_index = temp;
}
//перемножим
for (unsigned int i = min_index; i <= max_index; i++)
result *= mas[i];
cout << "min index = " << min_index << endl;
cout << "max index = " << max_index << endl;
cout << "result = " << result << endl;
}
Похожие вопросы
- Помогите, пожалуйста, исправить ошибку в коде С++!!
- Пацаны помогите найти логическую ошибку в C++
- Помогите пожалуйста исправить ошибки программы на паскале, переписанную с древней методички.
- Помогите исправить ошибку в программе (c++).
- Какую выбрать среду программирования для C++/Visual C++ для учебных целей кроме CodeGear Delphi+C++ Builder?
- heloword не запускается!? вопрос внутри!и код C+ builder! программа на С!
- C++ Builder. Вопрос внутри.
- помогите массив c#.
- Помогите сделать лабораторную работу по теме "Одномерные массивы" [C++]
- помогите срочно надо Квадратные массивы тема: Двумерные массивы на языке C++