Тема: Вказівники
Код і умова:
В одновимірному масиві, що складається з n дійсних елементів, знайдіть:
1) максимальний елемент масиву (3 бали);
2) суму елементів масиву, розташованих до останнього додатного елемента (+1 бал);
3) стисніть масив, видаливши з нього всі елементи, модуль яких знаходиться в інтервалі [a, b].
Елементи, що звільняються в кінці масиву, заповніть нулями (+1 бал).
#include "pch.h"
#include <iostream>
#include <ctime>
using namespace std;
int maximum(int *p, int n)
{
    int max = *(p + 0);//нехай перший елемен - найбільший
    for (int i = 0;i < n;i++)
    {
        if (max < *(p + i))//якщо найбільший елемент менший за поточний то
        {
            *(p + i) = max;//тепер поточний елемент найбільший
        }
    }
    return max;
}
int summa(int *p, int n)
{
    int sum = 0;
    for (int i = n; i > 0;i--)// рухаємся з кінця до першого додатнього
    {
        if (*(p + i) > 0)//якщо додатній то:
        {
            for (int j = 0;j < i;j++)//сумуємо всі від першого елемента і до того, який задовільнив if (*(p + i) > 0)
            {
                sum += *(p + j);
            }
            break;//після додавання виходим з циклу
        }
    }
    return sum;
}
int main()
{
    srand(time(NULL));
    setlocale(LC_CTYPE, "ukr");
    int a, b, n;
    cout << "Введiть кiлькiсть чисел:";
    cin >> n;
    int *arr = new int[n];
    for (int i = 0;i < n;i++)
    {
        arr[i] = rand() % 50 - i;
        cout << arr[i] << "\t";
    }
    cout << endl;
    /*cout << "Введiть iнтервал стиснення масиву від ";
    cin >> a;
    cout << " до ";
    cin >> b;*/
    cout << " Максимальний елемент масиву:" << maximum(arr, n) << endl;
    cout << "Сума значень масиву до отаннього додатнього елемента:" << summa(arr, n) << endl;
    delete[]arr;
}Результат:
Введiть кiлькiсть чисел:10
12      -1      47      17      24      40      25      35      28      2
 Максимальний елемент масиву:12
Сума значень масиву до отаннього додатнього елемента:95
Максимальний завжди перший елемент, тобто цикл пошуку найбільшого числа не працює, і сума не зрозуміло яка виходить.
Допоміжіть знайти помилки будь-ласка 