Привет! Сегодня я хотел бы поделиться своим опытом написания программы на языке C для работы с одномерным массивом. В моем примере мы будем работать с массивом, состоящим из N вещественных чисел. Задачей будет вычислить несколько значений, таких как сумма отрицательных элементов, произведение элементов между минимальным и максимальным элементами, произведение элементов с четными номерами и сумма элементов между первым и последним отрицательными элементами.Для начала нам понадобится объявить и инициализировать наш массив. Давайте представим, что у нас есть массив ‘numbers’ размером N. Введенные пользователем значения будут сохранены в этом массиве. Возможно, пригодится еще один дополнительный массив ‘negative’ для хранения отрицательных значений⁚
cpp
#include
using namespace std;
int main {
int N;
cout << ″Введите количество элементов в массиве⁚ ″;
cin >> N;
double numbers[N];
cout << ″Введите ″ << N << ″ вещественных чисел⁚ ″;
for (int i 0; i < N; i ) {
cin >> numbers[i];
}
double negative[N];
int negativeCount 0;
for (int i 0; i < N; i ) {
if (numbers[i] < 0) {
negative[negativeCount] numbers[i];
negativeCount ;
}
}
Теперь, когда у нас есть введенные пользователем значения и отрицательные элементы, мы можем перейти к вычислениям.1. Сумма отрицательных элементов⁚
Для этого мы просто просуммируем все значения в массиве 'negative'⁚
cpp
double sumNegative 0;
for (int i 0; i < negativeCount; i ) {
sumNegative negative[i];
}
2. Произведение элементов между минимальным и максимальным элементами⁚
Сначала нам нужно найти индексы минимального и максимального значения в массиве 'numbers'. Мы будем использовать переменные 'minIndex' и 'maxIndex' для хранения этих значений. Затем, мы умножим все элементы между 'minIndex' и 'maxIndex'⁚
cpp
int minIndex 0;
int maxIndex 0;
for (int i 1; i < N; i ) {
if (numbers[i] < numbers[minIndex]) {
minIndex i;
}
if (numbers[i] > numbers[maxIndex]) {
maxIndex i;
}
}
double productMinMax 1;
if (minIndex < maxIndex) {
for (int i minIndex 1; i < maxIndex; i ) {
productMinMax * numbers[i];
}
} else {
for (int i maxIndex 1; i < minIndex; i ) {
productMinMax * numbers[i];
}
}
3. Произведение элементов с четными номерами⁚
Аналогично предыдущему пункту, мы пройдемся по всем элементам массива 'numbers' с четными индексами и перемножим их⁚
cpp
double productEven 1;
for (int i 0; i < N; i 2) {
productEven * numbers[i];
}
4. Сумма элементов между первым и последним отрицательными элементами⁚
Мы должны найти индексы первого и последнего отрицательного элемента в массиве 'numbers'. Затем мы суммируем все элементы между этими индексами⁚
cpp
int firstNegativeIndex 0;
int lastNegativeIndex 0;
for (int i 0; i < N; i ) {
if (numbers[i] < 0) {
firstNegativeIndex i;
break;
}
}
for (int i N ౼ 1; i > 0; i—) {
if (numbers[i] < 0) {
lastNegativeIndex i;
break;
}
}
double sumBetweenNegative 0;
if (firstNegativeIndex < lastNegativeIndex) {
for (int i firstNegativeIndex 1; i < lastNegativeIndex; i ) {
sumBetweenNegative numbers[i];
}
} else {
for (int i lastNegativeIndex 1; i < firstNegativeIndex; i ) {
sumBetweenNegative numbers[i];
}
}
В конце программы мы можем вывести все найденные значения⁚
cpp
cout << ″Сумма отрицательных элементов⁚ ″ << sumNegative << endl;
cout << ″Произведение элементов между минимальным и максимальным⁚ ″ << productMinMax << endl;
cout << ″Произведение элементов с четными номерами⁚ ″ << productEven << endl;
cout << ″Сумма элементов между первым и последним отрицательным элементами⁚ ″ << sumBetweenNegative << endl;
return 0;
}
Вот и все! Теперь у нас есть полная программа на C , которая вычисляет сумму отрицательных элементов, произведение элементов между минимальным и максимальным значениями, произведение элементов с четными номерами и сумму элементов между первым и последним отрицательными элементами в заданном одномерном массиве.