Другие языки программирования и технологии
Язык С++. Напишите пожалуйста))
написать функцию, которая находит среднегеометрическое положительных элементов в одномерном массиве и заменяет максимальный элемент на среднегеометрическое
первое
#include iostream
#include math.h
using namespace std;
int main(){
int n;
cin>>n; //число элементов
double *mass;
mass=new double[n+1]; //на всякий выделим на 1 больше памяти
int max= -INT_MAX;
double maxx=max; //преобразовали для сравнения
for(int i=0;
#include iostream
#include math.h
using namespace std;
int main(){
int n;
cin>>n; //число элементов
double *mass;
mass=new double[n+1]; //на всякий выделим на 1 больше памяти
int max= -INT_MAX;
double maxx=max; //преобразовали для сравнения
for(int i=0;
Elvin Pashaev
это полностью?)
Не хотим. Всякую фигню писать - не хотим. Не интересно.
Elvin Pashaev
очень нужно
Нужен стандарт C++17 для optional
Если у тебя Visual Studio, то поддержку 17 стандарта можно включить по пути Проект (верхнее меню) -> Свойства -> Свойства конфигурации -> C/C++ -> Язык -> Стандарт языка C++ -> Стандарт ISO C++17 (/std:c++17)
Если есть вопросы по коду - спрашивай.
#include <iostream>
#include <windows.h>
#include <ctime>
#include <algorithm>
#include <numeric>
#include <optional>
#include <string>
using namespace std;
optional<double> f(int *);
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
srand(time(NULL));
system("color 0A");
auto len = 10u + rand() % 11u;
auto arr = new int[len];
auto filler = []()
{
return -10 + rand() % 21;
};
generate(arr, arr + len, filler);
cout << "Исходный массив" << endl;
for (auto it = arr; it < arr + len; ++it)
{
cout << *it << endl;
}
auto value_ = f(arr);
cout << (
value_.has_value() ?
"Среднегеометрическое положительных чисел в этом массиве = " + to_string(value_.value()) :
"В массиве нет положительных элементов"
) << endl;
system("pause");
return 0;
}
optional<double> f(int *a)
{
optional<double> outp;
auto len = _msize(a) / sizeof(a);
auto count_positive = 0u;
auto collection = [&count_positive](long long p, int t) -> long long
{
if (t > 0)
{
++count_positive;
return p *= t;
}
else
{
return p;
}
};
long long p = accumulate(a, a + len, 1, collection);
if (count_positive == 0u)
{
outp = {};
}
else
{
outp = pow(p, 1. / count_positive);
}
return outp;
}

Если у тебя Visual Studio, то поддержку 17 стандарта можно включить по пути Проект (верхнее меню) -> Свойства -> Свойства конфигурации -> C/C++ -> Язык -> Стандарт языка C++ -> Стандарт ISO C++17 (/std:c++17)
Если есть вопросы по коду - спрашивай.
#include <iostream>
#include <windows.h>
#include <ctime>
#include <algorithm>
#include <numeric>
#include <optional>
#include <string>
using namespace std;
optional<double> f(int *);
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
srand(time(NULL));
system("color 0A");
auto len = 10u + rand() % 11u;
auto arr = new int[len];
auto filler = []()
{
return -10 + rand() % 21;
};
generate(arr, arr + len, filler);
cout << "Исходный массив" << endl;
for (auto it = arr; it < arr + len; ++it)
{
cout << *it << endl;
}
auto value_ = f(arr);
cout << (
value_.has_value() ?
"Среднегеометрическое положительных чисел в этом массиве = " + to_string(value_.value()) :
"В массиве нет положительных элементов"
) << endl;
system("pause");
return 0;
}
optional<double> f(int *a)
{
optional<double> outp;
auto len = _msize(a) / sizeof(a);
auto count_positive = 0u;
auto collection = [&count_positive](long long p, int t) -> long long
{
if (t > 0)
{
++count_positive;
return p *= t;
}
else
{
return p;
}
};
long long p = accumulate(a, a + len, 1, collection);
if (count_positive == 0u)
{
outp = {};
}
else
{
outp = pow(p, 1. / count_positive);
}
return outp;
}

Виктор Агибалов
Полный отлаженный код https://pastebin.com/9mG540Wq
Помолись, чтобы преподаватели давали мне задания только на C++ и никакого web.
Помолись, чтобы преподаватели давали мне задания только на C++ и никакого web.
Виктор Агибалов
Что в ответе, там я забыл замену максимального элемента сделать.
Здесь доработано и проверено всё https://pastebin.com/9mG540Wq
Здесь доработано и проверено всё https://pastebin.com/9mG540Wq
Elvin Pashaev
какой-то сложный код))
Похожие вопросы
- Язык Си. Помогите пожалуйста написать простую программу.
- Двоичный код быстрее языков программирования по типу c++? (Я знаю что эти языки тоже написаны на двоичном коде)
- Напишите пожалуйста программу на visual basic 2010(Пожалуйста очень нужно)
- Как на языке Si написать програму, котору у меня бы купили?
- Кто знает язык Си? ПОМОГИТЕ ПОЖАЛУЙСТА!!!
- Хочу начать изучать программирование но не знаю какой язык выбрать помогите пожалуйста
- Язык программирования. Подскажите пожалуйста какой язык программирования самый простой для изучения?
- как продлить антивирус Касперского? Напишите пожалуйста кто знает, пошагово! Напишите пожалуйста кто знает, пошагово!
- Хорошая ли профессия программист?? ? Напишите пожалуйста свои мнение об этой профессии а также плюсы и минусы
- напишите пожалуйста все возможные 5-ти значные числа, состоящие из цифр от 0 до 9