С++ Потрібен код, допоможіть будь ласка
У одновимірному масиві, що складається з дійсних елементів,
обчислити: 1) номер максимального по модулю елемента масиву; 2) суму
елементів масиву, розташованих після першого позитивного елементу.
Перетворити масив таким чином, щоб спочатку розташовувалися всі елементи,
ціла частина яких лежить в інтервалі [a, b], а потім - всі інші.
Ответы
Вот код на C++, который решает поставленные задачи:
#include <iostream>
using namespace std;
int main() {
const int N = 10;
double arr[N] = {1.5, -2.3, 3.1, -4.2, 5.4, -6.5, 7.8, -8.9, 9.0, -10.1};
double max = 0, sum = 0;
int max_index = 0;
int a = 2, b = 7;
int count = 0;
for (int i = 0; i < N; i++) {
if (abs(arr[i]) > abs(max)) {
max = arr[i];
max_index = i;
}
if (arr[i] > 0) {
for (int j = i + 1; j < N; j++) {
sum += arr[j];
}
break;
}
if ((int)arr[i] >= a && (int)arr[i] <= b) {
count++;
}
}
cout << "1) Номер максимального по модулю елемента масиву: " << max_index << endl;
cout << "2) Сума елементів масиву, розташованих після першого позитивного елементу: " << sum << endl;
for (int i = 0; i < count; i++) {
for (int j = 0; j < N; j++) {
if ((int)arr[j] >= a && (int)arr[j] <= b) {
swap(arr[i], arr[j]);
break;
}
}
}
for (int i = count; i < N; i++) {
for (int j = count; j < N; j++) {
if ((int)arr[j] < a || (int)arr[j] > b) {
swap(arr[i], arr[j]);
break;
}
}
}
cout << "Перетворений масив: ";
for (int i = 0; i < N; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}