Тема: Підкажіть як бути далі

Є завдання:

дано натуральне число n та дійсні числа a1,...,an.Необхідно:
1)отримати нову послідовність b1,...,bn шляхом заміни від*ємних членів початкової послідовності їх квадратами
2)якщо члени послідовності утворюють неспадну послідовність, то отримати суму членів початковій послідовності, інакше отримати їх добуток.

Є написаний початок,але щось далі не виходить

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <locale.h>

void func(int *a, int *b, int n) {
    for(int i = a[1]; i <= n; i++) {
        if(a[i] < 0) {
            b[i] = a[i] * a[i];
            printf("%d, ", b[i]);
        }
        else {
            b[i] = a[i];
            printf("%d, ", b[i]);
        }
    }
}
int main() {
    int n, i;
    int a[100];
    int b[100];
    setlocale(LC_ALL, ".1251");

    printf("Введите n-натуральное : ");
    scanf("%d", &n);

    printf("Введите a1: ");
    scanf("%d", &a[1]);

    for(i = a[1]; i <= n; i++) {
        a[i] = i + n % 2;
        printf("%d, ", a[i]);
    }
    printf("\n");

    func(a, b, n);
}

2

Re: Підкажіть як бути далі

#include <iostream>
#include <cstdlib>
#define SIZE 5

using namespace std;

void print_array(float *ptr, int length);

int main() {
    /* Задане натуральне число */
    int n;
    /* Задані дійсні числа */
    float a[SIZE], b[SIZE];
    /* Лічильник і прапорець */
    int i, flag;
    /* Результат обчислень */
    float result;
    
    /* Встановлюємо початкові значення */
    n = rand() % 10;
    for (i = 0; i < SIZE; i++) {
        a[i] = rand() % 20 - 10;
        b[i] = 0;
    }
        
    /* Виводимо створені масиви на екран */
    cout << "Початкові масиви.\n";
    cout << "a: ";
    print_array(a, SIZE);
    cout << "b: ";
    print_array(b, SIZE);
    
    /* Записуємо члени масиву a в масив b, замінюючи
     * від’ємні члени масиву a їх квадратами */
    for (i = 0; i < SIZE; i++) {
        if (a[i] < 0) {
            b[i] = a[i] * a[i];
        } else {
            b[i] = a[i];
        }
    }
    
    cout << "Новий масив b.\n";
    cout << "b: ";
    print_array(b, SIZE);
    
    /* Визначаємо чи послідовність b неспадна */
    for (i = 0, flag = 0; i < SIZE-1; i++) {
        if (b[i+1] >= b[i]) {
            flag++;
        }
    }
    
    if (flag == SIZE-1) {
        cout << "Послідовність неспадна.\n";
        for (i = 0, result = 0.0; i < SIZE; i++) {
            result += a[i];
        }
        cout << "Сума членів масиву a = " << result << "\n";
    } else {
        for (i = 0, result = 1; i < SIZE; i++) {
            result *= a[i];
        }
        cout << "Добуток членів масиву a = " << result << "\n";
    }    
    
    return 0;
}

void print_array(float *ptr, int length) {
    /* Лічильник */
    int i;
    
    /* Виводимо по одному елементу масив */
    for (i = 0; i < length; i++) {
        cout << *(ptr + i) << ' ';
    }
    
    cout << '\n';
}