Люд, помогите составить алгоритм решения задачки на языке С ++,можете пожалуйста
Люд, помогите составить метод решения задачи на языке С ++,можете пожалуйста объяснить.честно разговаривая даже условие самой задачки не понял.В массиве Х (N) отыскать S1 - сумму положительных элементов массива в первой половине массива и S2 - сумму отрицательных элементов массива во 2-ой половине массива.
Задать свой вопрос2 ответа
Егор Светлолобов
includelt;iostreamgt;//библиотекапотоковввода/выводаincludelt;vectorgt;//библиотека"вектор",этообертканаддинамическиммассивомusingnamespacestd;/**местоимен,безнегокомпиляторнеусвоит,*чтозафункциитыжелаешьиспользоватьичтозаобъекты*создавать,тоестьбиблиотеки,*чтоподключилимывыше-незаведутсябезнего.*/
//этафункциясчитаетсуммуположительныхелементовввекторе(массиве),отидо//обозначенногоиндекса,всепараметрыпередаемпоссылкевоизбежаниикопирования
//-----------------------------------------------------------------------------doublegetSumOfPositivElements(constvectorlt;doublegt;amp;array,constintamp;indexFrom,constintamp;indexTo)//-----------------------------------------------------------------------------doublesumOfPositivElements=0;//переменная,чтобережётсуммуfor(inti=indexFrom;ilt;indexTo;++i)//циклотидообозначенногоиндексаif(0lt;array[i])//условие,еслиелементбольшенуляsumOfPositivElements+=array[i];//топриплюсоватьегоreturnsumOfPositivElements;//возвращатьприобретенныйитогсуммы
//работаетподобно,сразличиемлишчтосуммируетотрицательныеелементы
//-----------------------------------------------------------------------------doublegetSumOfNegativElements(constvectorlt;doublegt;amp;array,constintamp;indexFrom,constintamp;indexTo)//-----------------------------------------------------------------------------doublesumOfNegativElements=0;for(inti=indexFrom;ilt;indexTo;++i)if(0gt;array[i])sumOfNegativElements+=array[i];returnsumOfNegativElements;
//основнаяфункцияпрограммки
//-----------------------------------------------------------------------------intmain()//-----------------------------------------------------------------------------vectorlt;doublegt;myArray;//создаемвектор(массив),чтобережётзначениятипаdoubledoublearraySize;//переменная,чтобережётразмервводимогомассиваintelementBuf;//вэтойпеременнойбудемберечьвводимыйелементintarrayMiddlePosition;//индекссерединымассива
coutlt;lt;"Enterarraysize:";cingt;gt;arraySize;//вводимразмермассива
arrayMiddlePosition=arraySize/2;//определяемегосередину
myArray.reserve(arraySize);//резервируемразмерподкол-воелементов
for(inti=0;ilt;arraySize;++i)//циклинициализациивектораcoutlt;lt;"Enterelement:";cingt;gt;elementBuf;//вводимтекущийелементmyArray.push_back(elementBuf);//вставляемеговвекторcoutlt;lt;"Elementsleft:"lt;lt;arraySize-(i+1);//расчитываемкол-вооставшихсяелементовcoutlt;lt;endllt;lt;endl;
coutlt;lt;endl;coutlt;lt;"Sumofpositivelementsinfirstarrayhalf:";//выводимсуммуположительныхелементоввпервойполовинемассиваcoutlt;lt;getSumOfPositivElements(myArray,0,arrayMiddlePosition);coutlt;lt;endl;
coutlt;lt;"Sumofnegativelementsinfirstarrayhalf:";//выводимсуммуотрицательныхелементовввторойполовинемассиваcoutlt;lt;getSumOfNegativElements(myArray,arrayMiddlePosition,myArray.size());coutlt;lt;endl;
//останавливаемвыполнениепрограммы,чтобыпоглядетьитогsystem("pause");//возращаемзначение'0',чтоозначаетдлясистемы,чтопрограммаокончилаработуудачно(безошибок)return0;
//этафункциясчитаетсуммуположительныхелементовввекторе(массиве),отидо//обозначенногоиндекса,всепараметрыпередаемпоссылкевоизбежаниикопирования
//-----------------------------------------------------------------------------doublegetSumOfPositivElements(constvectorlt;doublegt;amp;array,constintamp;indexFrom,constintamp;indexTo)//-----------------------------------------------------------------------------doublesumOfPositivElements=0;//переменная,чтобережётсуммуfor(inti=indexFrom;ilt;indexTo;++i)//циклотидообозначенногоиндексаif(0lt;array[i])//условие,еслиелементбольшенуляsumOfPositivElements+=array[i];//топриплюсоватьегоreturnsumOfPositivElements;//возвращатьприобретенныйитогсуммы
//работаетподобно,сразличиемлишчтосуммируетотрицательныеелементы
//-----------------------------------------------------------------------------doublegetSumOfNegativElements(constvectorlt;doublegt;amp;array,constintamp;indexFrom,constintamp;indexTo)//-----------------------------------------------------------------------------doublesumOfNegativElements=0;for(inti=indexFrom;ilt;indexTo;++i)if(0gt;array[i])sumOfNegativElements+=array[i];returnsumOfNegativElements;
//основнаяфункцияпрограммки
//-----------------------------------------------------------------------------intmain()//-----------------------------------------------------------------------------vectorlt;doublegt;myArray;//создаемвектор(массив),чтобережётзначениятипаdoubledoublearraySize;//переменная,чтобережётразмервводимогомассиваintelementBuf;//вэтойпеременнойбудемберечьвводимыйелементintarrayMiddlePosition;//индекссерединымассива
coutlt;lt;"Enterarraysize:";cingt;gt;arraySize;//вводимразмермассива
arrayMiddlePosition=arraySize/2;//определяемегосередину
myArray.reserve(arraySize);//резервируемразмерподкол-воелементов
for(inti=0;ilt;arraySize;++i)//циклинициализациивектораcoutlt;lt;"Enterelement:";cingt;gt;elementBuf;//вводимтекущийелементmyArray.push_back(elementBuf);//вставляемеговвекторcoutlt;lt;"Elementsleft:"lt;lt;arraySize-(i+1);//расчитываемкол-вооставшихсяелементовcoutlt;lt;endllt;lt;endl;
coutlt;lt;endl;coutlt;lt;"Sumofpositivelementsinfirstarrayhalf:";//выводимсуммуположительныхелементоввпервойполовинемассиваcoutlt;lt;getSumOfPositivElements(myArray,0,arrayMiddlePosition);coutlt;lt;endl;
coutlt;lt;"Sumofnegativelementsinfirstarrayhalf:";//выводимсуммуотрицательныхелементовввторойполовинемассиваcoutlt;lt;getSumOfNegativElements(myArray,arrayMiddlePosition,myArray.size());coutlt;lt;endl;
//останавливаемвыполнениепрограммы,чтобыпоглядетьитогsystem("pause");//возращаемзначение'0',чтоозначаетдлясистемы,чтопрограммаокончилаработуудачно(безошибок)return0;
Никита Кувичко
Если на быструю руку, то так, должно скомпилится :)
include lt;iostreamgt;
include lt;randomgt;
include lt;ctimegt;
using namespace std;
const int n = 10;
mt19937 gen(time(0));
uniform_int_distributionlt;gt; uid(-50, 50);
int main()
int x[n], s1, s2;
s1 = s2 = 0;
for (int i = 0; i lt; n; ++i)
x[i] = uid(gen);
cout lt;lt; x[i] lt;lt; " ";
for (int i = 0; i lt; (n / 2); ++i)
if (x[i] gt; 0)
s1 += x[i];
for (int i = (n/2); i lt; n; ++i)
if (x[i] lt; 0)
s2 += x[i];
cout lt;lt; endl;
cout lt;lt; "S1= " lt;lt; s1 lt;lt; endl;
cout lt;lt; "S2= " lt;lt; s2 lt;lt; endl;
return 0;
include lt;iostreamgt;
include lt;randomgt;
include lt;ctimegt;
using namespace std;
const int n = 10;
mt19937 gen(time(0));
uniform_int_distributionlt;gt; uid(-50, 50);
int main()
int x[n], s1, s2;
s1 = s2 = 0;
for (int i = 0; i lt; n; ++i)
x[i] = uid(gen);
cout lt;lt; x[i] lt;lt; " ";
for (int i = 0; i lt; (n / 2); ++i)
if (x[i] gt; 0)
s1 += x[i];
for (int i = (n/2); i lt; n; ++i)
if (x[i] lt; 0)
s2 += x[i];
cout lt;lt; endl;
cout lt;lt; "S1= " lt;lt; s1 lt;lt; endl;
cout lt;lt; "S2= " lt;lt; s2 lt;lt; endl;
return 0;
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов