Другие языки программирования и технологии
C++ Нужно вычислить сумму элементов массива, расположенных между первым и последним отрицательными элементами.
Помогите пожалуйста: (
#include <iostream>
#include <utility>
#include <iomanip>
#include <ctime>
using namespace std;
typedef pair<int,> indexes_t;
void search(indexes_t&, int*, int);
bool exist(const indexes_t&);
int summma(indexes_t&, int*);
int main() {
srand(static_cast<unsigned>(time(NULL)));
const int size = 6;
int arr[size];
for (int n = 0; n < size; ++n) arr[n] = rand() % 19 - 9;
for (size_t n = 0; n < size; ++n) cout << setw(4) << arr[n];
indexes_t indexes;
indexes.first = indexes.second = -1;
search(indexes, arr, size);
if (exist(indexes)) cout << "\n\tSum = " << summma(indexes, arr);
else cout << "\n\tNot exist!";
cout << endl;
cin.get();
}
void search(indexes_t& indexes, int* arr, int size) {
for (int n = 0; n < size; ++n) {
if (arr[n] < 0) {
indexes.first = n;
break;
}
}
for (int n = size - 1; n >= 0; --n) {
if (arr[n] < 0) {
indexes.second = n;
break;
}
}
}
bool exist(const indexes_t& indexes) {
if (indexes.second - indexes.first > 1) return true;
return false;
}
int summma(indexes_t& indexes, int* arr) {
int sm = 0;
for (int n = indexes.first + 1; n < indexes.second; ++n) sm += arr[n];
return sm;
}
#include <utility>
#include <iomanip>
#include <ctime>
using namespace std;
typedef pair<int,> indexes_t;
void search(indexes_t&, int*, int);
bool exist(const indexes_t&);
int summma(indexes_t&, int*);
int main() {
srand(static_cast<unsigned>(time(NULL)));
const int size = 6;
int arr[size];
for (int n = 0; n < size; ++n) arr[n] = rand() % 19 - 9;
for (size_t n = 0; n < size; ++n) cout << setw(4) << arr[n];
indexes_t indexes;
indexes.first = indexes.second = -1;
search(indexes, arr, size);
if (exist(indexes)) cout << "\n\tSum = " << summma(indexes, arr);
else cout << "\n\tNot exist!";
cout << endl;
cin.get();
}
void search(indexes_t& indexes, int* arr, int size) {
for (int n = 0; n < size; ++n) {
if (arr[n] < 0) {
indexes.first = n;
break;
}
}
for (int n = size - 1; n >= 0; --n) {
if (arr[n] < 0) {
indexes.second = n;
break;
}
}
}
bool exist(const indexes_t& indexes) {
if (indexes.second - indexes.first > 1) return true;
return false;
}
int summma(indexes_t& indexes, int* arr) {
int sm = 0;
for (int n = indexes.first + 1; n < indexes.second; ++n) sm += arr[n];
return sm;
}
с чем именно помочь?
Алгоритм таков: 1)Перебираешь все елементы в цыкле начиная с первого когда встречается отрицательный элемент он запонимаентся в переменую и ты делаешь выход с цыкла.
2)Делаешь тоже самое тока в условиях ццыкла перебор идет с конца масива елементов. Запонимаешт индекс уже в другую переменую. (осторожнно так как он уже не равен итератору цыкла)
3)Анализируешь эти индексы: если равны то выводишь что выводишь что елементов нету, в другом случаи если по разница индексов по модулю =1 то выводишь обратнно что елементов нету, В последнем случаи в цыкле начиная с меньшого идекса и заканчивая большим считаешь суму елементов.
2)Делаешь тоже самое тока в условиях ццыкла перебор идет с конца масива елементов. Запонимаешт индекс уже в другую переменую. (осторожнно так как он уже не равен итератору цыкла)
3)Анализируешь эти индексы: если равны то выводишь что выводишь что елементов нету, в другом случаи если по разница индексов по модулю =1 то выводишь обратнно что елементов нету, В последнем случаи в цыкле начиная с меньшого идекса и заканчивая большим считаешь суму елементов.
эта легчафшая задача. если ты не можешь ее решить зачем тебе это? хотя я в начале тоже нубом был. ну кароч пытайся написать. главное практика
Похожие вопросы
- Вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами - C++
- Паскаль, одномерн массив, вычислить сумму элементов массива, расположенных после последнего элемента, равного нулю. Спасибо)
- помогите!!! вопрос по C++ нужно написать программку "заполните массив так, чтобы все его элементы были различны.
- С++ Передать в функцию квадратную матрицу и вычислить сумму элементов на ее главной диагонали и вернуть эту сумму.
- Написать функцию, вычисляющую произведение элементов массива, расположенных между первым и вторым нулевым элементам
- Вычислить сумму элементов каждого столбика. С++
- c++ помогите найти сумму элементов на главной диагонали?
- Microsoft Visual C++ 6.0 В одномерном массиве, состоящем из n вещественных элементов, вычислить...
- Помогите с С++. Надо найти произведение элементов одномерного массива между первым и последним 0.
- Вычислить сумму нечетных элементов в программа С++ .Через статический и динамический массив! Вот я сам написал проверьте