Помогите написать на с++
Дан одномерный целочисленный массив порядка N. Найдите сумму
положительных элементов массива после последнего отрицательного
элемента. Если таких элементов нет, вернуть значение 0

Ответы

Ответ дал: nazikmuz
1

Відповідь:

С++ code:

#include <iostream>

#include <cstdlib>

#include <time.h>

void randarr(int *arr,const int size){

for(int i = 0; i < size; i++){

 arr[i] = rand() % 50 - 10;

}

}

void printarr(int *arr,const int size){

for(int i = 0; i < size; i++){

 std::cout << arr[i] << " ";

}

}

int index_last_negative(int *arr,const int size){

for(int i = size - 1; i >= 0; i--){

 if(arr[i] < 0){

  return i;

 }

}

return -1;

}

int sum(int *arr,const int size){

int index = index_last_negative(arr,size),sum = 0;

if(index == -1){

 return sum;

}

else if(index == size - 1){

 return sum;

}

else{

 for(int i = index + 1; i < size; i++){

  sum += arr[i];

 }

 return sum;

}

}

int main(){

srand(time(NULL));

setlocale(LC_ALL, "Ukrainian");

int size;

std::cout << "Введите размер: ";

std::cin >> size;

int *arr = new int[size];

randarr(arr,size);

printarr(arr,size);

std::cout << "Сума всех положительных чисел после последнего отрицательного = " << sum(arr,size) << std::endl;

delete[] arr;

return 0;

}

Пояснення:

Вас заинтересует