Предмет: Информатика,
автор: shomik07
Народ, помогите составить алгоритм решения задачи на языке С ++,можете пожалуйста пояснить.честно говоря даже условие самой задачи не понял.В массиве Х (N) найти S1 - сумму положительных элементов массива в первой половине массива и S2 - сумму отрицательных элементов массива во второй половине массива.
Ответы
Автор ответа:
0
Если на скорую руку, то так, должно скомпилится :)
#include <iostream>
#include <random>
#include <ctime>
using namespace std;
const int n = 10;
mt19937 gen(time(0));
uniform_int_distribution<> uid(-50, 50);
int main()
{
int x[n], s1, s2;
s1 = s2 = 0;
for (int i = 0; i < n; ++i) {
x[i] = uid(gen);
cout << x[i] << " ";
}
for (int i = 0; i < (n / 2); ++i) {
if (x[i] > 0) {
s1 += x[i];
}
}
for (int i = (n/2); i < n; ++i) {
if (x[i] < 0) {
s2 += x[i];
}
}
cout << endl;
cout << "S1= " << s1 << endl;
cout << "S2= " << s2 << endl;
return 0;
}
#include <iostream>
#include <random>
#include <ctime>
using namespace std;
const int n = 10;
mt19937 gen(time(0));
uniform_int_distribution<> uid(-50, 50);
int main()
{
int x[n], s1, s2;
s1 = s2 = 0;
for (int i = 0; i < n; ++i) {
x[i] = uid(gen);
cout << x[i] << " ";
}
for (int i = 0; i < (n / 2); ++i) {
if (x[i] > 0) {
s1 += x[i];
}
}
for (int i = (n/2); i < n; ++i) {
if (x[i] < 0) {
s2 += x[i];
}
}
cout << endl;
cout << "S1= " << s1 << endl;
cout << "S2= " << s2 << endl;
return 0;
}
Автор ответа:
0
#include <iostream> //библиотека потоков ввода/вывода
#include <vector> //библиотека "вектор", это обертка над динамическим массивом
using namespace std; /*
* пространство имен, без него компилятор не поймет,
* что за функции ты хочешь использовать и что за объекты
* создавать, то есть библиотеки,
* что подключили мы выше - не заведутся без него.
*/
//эта функция считает сумму позитивных елементов в векторе(массиве), от и до //указанного индекса, все параметры передаем по ссылке во избежании копирования
//----------------------------------------------------------------------------- double getSumOfPositivElements(const vector<double>& array, const int& indexFrom, const int& indexTo) //----------------------------------------------------------------------------- { double sumOfPositivElements = 0; //переменная, что хранит сумму for (int i = indexFrom; i < indexTo; ++i) //цикл от и до указанного индекса { if (0 < array[i]) //условие, если елемент больше нуля { sumOfPositivElements += array[i]; //то приплюсовать его } } return sumOfPositivElements; //вернуть полученный результат суммы }
//работает аналогично, с разницей лиш что суммирует отрицательные елементы
//----------------------------------------------------------------------------- double getSumOfNegativElements(const vector<double>& array, const int& indexFrom, const int& indexTo) //----------------------------------------------------------------------------- { double sumOfNegativElements = 0; for (int i = indexFrom; i < indexTo; ++i) { if (0 > array[i]) { sumOfNegativElements += array[i]; } } return sumOfNegativElements; }
//основная функция программы
//----------------------------------------------------------------------------- int main() //----------------------------------------------------------------------------- { vector<double> myArray; //создаем вектор(массив), что хранит значения типа double double arraySize; //переменная, что хранит размер вводимого массива int elementBuf; //в этой переменной будем хранить вводимый елемент int arrayMiddlePosition; //индекс середины массива
cout << "Enter array size: "; cin >> arraySize; //вводим размер массива
arrayMiddlePosition = arraySize / 2; //определяем его середину
myArray.reserve(arraySize); //резервируем размер под кол-во елементов
for (int i = 0; i < arraySize; ++i) //цикл инициализации вектора { cout << "Enter element: "; cin >> elementBuf; //вводим текущий елемент myArray.push_back(elementBuf); //вставляем его в вектор cout << "Elements left: " << arraySize - (i + 1); //расчитываем кол-во оставшихся елементов cout << endl << endl; }
cout << endl; cout << "Sum of positiv elements in first array half: "; //выводим сумму положительных елементов в первой половине массива cout << getSumOfPositivElements(myArray, 0, arrayMiddlePosition); cout << endl;
cout << "Sum of negativ elements in first array half: "; //выводим сумму отрицательных елементов в второй половине массива cout << getSumOfNegativElements(myArray, arrayMiddlePosition, myArray.size()); cout << endl;
//останавливаем выполнение программы, что бы посмотреть результат system("pause"); //возращаем значение '0', что значит для системы, что программа завершила работу успешно (без ошибок) return 0; }
//эта функция считает сумму позитивных елементов в векторе(массиве), от и до //указанного индекса, все параметры передаем по ссылке во избежании копирования
//----------------------------------------------------------------------------- double getSumOfPositivElements(const vector<double>& array, const int& indexFrom, const int& indexTo) //----------------------------------------------------------------------------- { double sumOfPositivElements = 0; //переменная, что хранит сумму for (int i = indexFrom; i < indexTo; ++i) //цикл от и до указанного индекса { if (0 < array[i]) //условие, если елемент больше нуля { sumOfPositivElements += array[i]; //то приплюсовать его } } return sumOfPositivElements; //вернуть полученный результат суммы }
//работает аналогично, с разницей лиш что суммирует отрицательные елементы
//----------------------------------------------------------------------------- double getSumOfNegativElements(const vector<double>& array, const int& indexFrom, const int& indexTo) //----------------------------------------------------------------------------- { double sumOfNegativElements = 0; for (int i = indexFrom; i < indexTo; ++i) { if (0 > array[i]) { sumOfNegativElements += array[i]; } } return sumOfNegativElements; }
//основная функция программы
//----------------------------------------------------------------------------- int main() //----------------------------------------------------------------------------- { vector<double> myArray; //создаем вектор(массив), что хранит значения типа double double arraySize; //переменная, что хранит размер вводимого массива int elementBuf; //в этой переменной будем хранить вводимый елемент int arrayMiddlePosition; //индекс середины массива
cout << "Enter array size: "; cin >> arraySize; //вводим размер массива
arrayMiddlePosition = arraySize / 2; //определяем его середину
myArray.reserve(arraySize); //резервируем размер под кол-во елементов
for (int i = 0; i < arraySize; ++i) //цикл инициализации вектора { cout << "Enter element: "; cin >> elementBuf; //вводим текущий елемент myArray.push_back(elementBuf); //вставляем его в вектор cout << "Elements left: " << arraySize - (i + 1); //расчитываем кол-во оставшихся елементов cout << endl << endl; }
cout << endl; cout << "Sum of positiv elements in first array half: "; //выводим сумму положительных елементов в первой половине массива cout << getSumOfPositivElements(myArray, 0, arrayMiddlePosition); cout << endl;
cout << "Sum of negativ elements in first array half: "; //выводим сумму отрицательных елементов в второй половине массива cout << getSumOfNegativElements(myArray, arrayMiddlePosition, myArray.size()); cout << endl;
//останавливаем выполнение программы, что бы посмотреть результат system("pause"); //возращаем значение '0', что значит для системы, что программа завершила работу успешно (без ошибок) return 0; }
Автор ответа:
0
cout << "Enter array size: ";
cin >> arraySize; //вводим размер массива
arrayMiddlePosition = arraySize / 2; //определяем его середину
myArray.reserve(arraySize); //резервируем размер под кол-во елементов
cin >> arraySize; //вводим размер массива
arrayMiddlePosition = arraySize / 2; //определяем его середину
myArray.reserve(arraySize); //резервируем размер под кол-во елементов
Автор ответа:
0
for (int i = 0; i < arraySize; ++i) //цикл инициализации вектора
{
cout << "Enter element: ";
cin >> elementBuf; //вводим текущий елемент
myArray.push_back(elementBuf); //вставляем его в вектор
cout << "Elements left: " << arraySize - (i + 1); //расчитываем кол-во оставшихся елементов
cout << endl << endl;
}
{
cout << "Enter element: ";
cin >> elementBuf; //вводим текущий елемент
myArray.push_back(elementBuf); //вставляем его в вектор
cout << "Elements left: " << arraySize - (i + 1); //расчитываем кол-во оставшихся елементов
cout << endl << endl;
}
Автор ответа:
0
cout << endl;
cout << "Sum of positiv elements in first array half: ";
//выводим сумму положительных елементов в первой половине массива
cout << getSumOfPositivElements(myArray, 0, arrayMiddlePosition);
cout << endl;
cout << "Sum of positiv elements in first array half: ";
//выводим сумму положительных елементов в первой половине массива
cout << getSumOfPositivElements(myArray, 0, arrayMiddlePosition);
cout << endl;
Автор ответа:
0
cout << "Sum of negativ elements in first array half: ";
//выводим сумму отрицательных елементов в второй половине массива
cout << getSumOfNegativElements(myArray, arrayMiddlePosition, myArray.size());
cout << endl;
//останавливаем выполнение программы, что бы посмотреть результат
system("pause");
//возращаем значение '0', что значит для системы, что программа завершила работу успешно (без ошибок)
return 0;
}
//выводим сумму отрицательных елементов в второй половине массива
cout << getSumOfNegativElements(myArray, arrayMiddlePosition, myArray.size());
cout << endl;
//останавливаем выполнение программы, что бы посмотреть результат
system("pause");
//возращаем значение '0', что значит для системы, что программа завершила работу успешно (без ошибок)
return 0;
}
Автор ответа:
0
Естественно компилится, работает.
Похожие вопросы
Предмет: Математика,
автор: adderiy1252
Предмет: Алгебра,
автор: aniramavopop9
Предмет: История,
автор: 9651525075
Предмет: Алгебра,
автор: Ленкабелка
Предмет: Математика,
автор: ДашаХорзунова