
Ввести одномерный массив A из N элементов. Вычислить Srg– среднее геометрическое положительных
элементов массива. Заменить на Srg первый элемент массива. Массив вывести до и после преобразования. С++

Ответы на вопрос

Код программы:
#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <fstream>
#include <windows.h>
#include<locale>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
double* A, Srg, proizv = 1;
int kol = 0, i, N;
cout << "Введите количество элементов" << endl;
cin >> N;
A = (double*)malloc(N * sizeof(double));
cout << "Введите массив: " << endl;
for (i = 0; i < N; i++)
cin >> A[i];
for (i = 0; i < N; i++)
if (A[i] > 0) {
proizv = proizv * A[i];
++kol;
}
Srg = pow(proizv, 1./kol);
cout << "Исходный массив: " << endl;
for (i = 0; i < N; i++)
cout<< A[i] << ' ';
cout << '\n';
cout << "Измененный массив: " << endl;
A[0] = Srg;
for (i = 0; i < N; i++)
cout << A[i] << ' ';
return 0;
}



Конечно! Вот пример кода на C++, который выполняет описанные вами действия:
cpp#include <iostream>
#include <cmath>
int main() {
int N;
std::cout << "Введите размер массива: ";
std::cin >> N;
if (N <= 0) {
std::cout << "Размер массива должен быть положительным!" << std::endl;
return 1;
}
double *A = new double[N];
// Ввод массива
std::cout << "Введите элементы массива:" << std::endl;
for (int i = 0; i < N; ++i) {
std::cin >> A[i];
}
// Вычисление среднего геометрического положительных элементов
double Srg = 1.0;
int countPositive = 0;
for (int i = 0; i < N; ++i) {
if (A[i] > 0) {
Srg *= A[i];
countPositive++;
}
}
if (countPositive > 0) {
Srg = std::pow(Srg, 1.0 / countPositive);
} else {
std::cout << "В массиве нет положительных элементов!" << std::endl;
delete[] A;
return 1;
}
// Замена первого элемента массива на Srg
A[0] = Srg;
// Вывод массива до преобразования
std::cout << "Массив до преобразования:" << std::endl;
for (int i = 0; i < N; ++i) {
std::cout << A[i] << " ";
}
std::cout << std::endl;
// Вывод массива после преобразования
std::cout << "Массив после преобразования:" << std::endl;
for (int i = 0; i < N; ++i) {
std::cout << A[i] << " ";
}
std::cout << std::endl;
delete[] A;
return 0;
}
Скопируйте этот код в среду разработки C++, скомпилируйте и выполните, чтобы увидеть результаты. Программа попросит вас ввести размер массива и его элементы, затем выведет массив до и после преобразования.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili