Компилятор ругается на мою задачу по C++. Как исправить? Условие прикреплено в описании. Ссылка на моё "решение": cpp.sh/5ll6l
Ответы
// Example program
#include <iostream>
using namespace std;
void print (int *p, int n) { // вывод массива на экран
for (int i = 0; i < n; i++) {
cout << p[i] << ' ';
}
}
int sum (int *p, int n) { // сумма отр. элементов
int S = 0;
for (int i = 0; i < n; i++) {
if (p[i] < 0) {
S = S + p [i];
}
}
return S;
}
int sum1 (int *p, int n){ // подсчет кол-ва четных элементов
int S = 0;
for (int i = 0; i < n; i++) {
if (p[i] % 2 == 0) {
S++;
}
}
return S;
}
int sum2 (int* p, int n){ // поиск позиции минимального элемента
int min = p[0];
int index_min = 0;
for (int i = 0; i < n; i++) {
if (p[i] < min) {
min = p[i];
index_min = i;
}
}
return index_min;
}
int sum3 (int *p, int n){ // поиск максимального элемента
int max = p[0];
for (int i = 0; i < n; i++){
if (p[i] > max)
max = p[i];
}
return max;
}
int sum4 (int *p, int n){ // подсчет функции между первым и последним положительными элементом
int first_index = 0;
int last_index = 0;
int summa = 0;
for (int i = 0; i < n; i++) { // индекс первого элемент
if (p[i] > 0) {
first_index = i;
break;
}
}
for (int i = n - 1; i >= 0; --i) { // индекс последнего пол. элемента
if (p[i] > 0) {
last_index = i;
break;
}
}
for (int i = first_index; i <= last_index; ++i) { // подсчет суммы
summa += p[i];
}
return summa;
}
int main() {
int n = 5; // размер массива
int arr[n] = {2, -3, 4, 5, -1};
cout << "index_min: " << sum2(arr, n) << endl;
cout << "sum < 0: " << sum(arr, n) << endl;
cout << "sum_el_%_2: " << sum1(arr, n) << endl;
cout << "max element: " << sum3(arr, n) << endl;
cout << "summa ot 1ogo pol do posl pol: " << sum4(arr, n) << endl;
print(arr, n);
return 0;
}