
Вопрос задан 18.02.2019 в 10:01.
Предмет Информатика.
Спрашивает Борисович Станислав.
Решить в с++задан массив Z(n) целых чисел. найти максимальный элемент массива и если это простое
число - удалить все элементы равные максимальному значению. Определить среднее арифметическое положительных элементов массива после удаления. Упорядочить массив по убыванию модулей.

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

Отвечает Харламов Рома.
#include <iostream>
#include <string>
#include <cstdlib>
#include <algorithm>
using namespace std;
typedef unsigned short int USI;
int* fillArray(string name, int s);
int maxArray(int[], int s);
bool isPrime(int);
void deleteAllEqualTo(int[], int s, int value);
float averageOfPositive(int[], int s);
void printArray(int[], int s);
bool sortByDescAbs(int i, int j) {
return abs(i) > abs(j);
}
int main() {
setlocale(LC_ALL, "Russian");
USI n;
cout << "n = ";
cin >> n;
int* z = fillArray("z", n);
int max = maxArray(z, n);
if ( isPrime(max) ) {
deleteAllEqualTo(z, n, max);
}
float avg = averageOfPositive(z, n);
cout << "среднее: " << avg << '\n';
sort(z, z + n, sortByDescAbs);
cout << "z[" << n << "]: ";
printArray(z, n);
return 0;
}
int* fillArray(string name, int s) {
int array[s];
for (int i = 0; i < s; i++) {
cout << name << "[" << i << "] = ";
cin >> array[i];
}
return array;
}
int maxArray(int a[], int s) {
int max = a[0];
for (int i = 1; i < s; i++) {
if (a[i] > max) max = a[i];
}
return max;
}
bool isPrime(int n) {
if (n < 2) return false;
if (n == 2) return true;
if (n % 2 == 0) return false;
for (int i = 3; (i*i) <= n; i += 2) {
if (n % i == 0 ) return false;
}
return true;
}
void deleteAllEqualTo(int a[], int s, int value) {
for (int i = 0; i < s; i++) {
if (a[i] == value) a[i] = 0;
}
}
float averageOfPositive(int a[], int s) {
unsigned int sum = 0,
count = 0;
for (int i = 0; i < s; i++) {
if (a[i] > 0) {
sum += a[i];
count++;
}
}
return (sum / count);
}
void printArray(int a[], int s) {
for (int i = 0; i < s; i++) {
cout << a[i] << ' ';
}
}
#include <string>
#include <cstdlib>
#include <algorithm>
using namespace std;
typedef unsigned short int USI;
int* fillArray(string name, int s);
int maxArray(int[], int s);
bool isPrime(int);
void deleteAllEqualTo(int[], int s, int value);
float averageOfPositive(int[], int s);
void printArray(int[], int s);
bool sortByDescAbs(int i, int j) {
return abs(i) > abs(j);
}
int main() {
setlocale(LC_ALL, "Russian");
USI n;
cout << "n = ";
cin >> n;
int* z = fillArray("z", n);
int max = maxArray(z, n);
if ( isPrime(max) ) {
deleteAllEqualTo(z, n, max);
}
float avg = averageOfPositive(z, n);
cout << "среднее: " << avg << '\n';
sort(z, z + n, sortByDescAbs);
cout << "z[" << n << "]: ";
printArray(z, n);
return 0;
}
int* fillArray(string name, int s) {
int array[s];
for (int i = 0; i < s; i++) {
cout << name << "[" << i << "] = ";
cin >> array[i];
}
return array;
}
int maxArray(int a[], int s) {
int max = a[0];
for (int i = 1; i < s; i++) {
if (a[i] > max) max = a[i];
}
return max;
}
bool isPrime(int n) {
if (n < 2) return false;
if (n == 2) return true;
if (n % 2 == 0) return false;
for (int i = 3; (i*i) <= n; i += 2) {
if (n % i == 0 ) return false;
}
return true;
}
void deleteAllEqualTo(int a[], int s, int value) {
for (int i = 0; i < s; i++) {
if (a[i] == value) a[i] = 0;
}
}
float averageOfPositive(int a[], int s) {
unsigned int sum = 0,
count = 0;
for (int i = 0; i < s; i++) {
if (a[i] > 0) {
sum += a[i];
count++;
}
}
return (sum / count);
}
void printArray(int a[], int s) {
for (int i = 0; i < s; i++) {
cout << a[i] << ' ';
}
}



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Для решения данной задачи, вам потребуется выполнить несколько шагов. Давайте разберем каждый шаг подробно.
Шаг 1: Найти максимальный элемент массива
Для начала, вам нужно найти максимальный элемент в заданном массиве Z(n). Для этого, пройдитесь по всем элементам массива и запомните наибольшее значение.Шаг 2: Проверить, является ли максимальный элемент простым числом
После того, как вы найдете максимальный элемент, проверьте, является ли он простым числом. Простое число - это число, которое делится только на 1 и на само себя. Если максимальный элемент является простым числом, перейдите к следующему шагу. Если нет, пропустите шаг 3 и перейдите к шагу 4.Шаг 3: Удалить все элементы, равные максимальному значению
Если максимальный элемент является простым числом, удалите все элементы в массиве, которые равны максимальному значению. Для этого, пройдитесь по всем элементам массива и удалите элементы, равные максимальному значению.Шаг 4: Найти среднее арифметическое положительных элементов массива после удаления
После удаления элементов, найдите среднее арифметическое положительных элементов в массиве. Для этого, пройдитесь по всем элементам массива и найдите сумму положительных элементов. Затем разделите эту сумму на количество положительных элементов, чтобы получить среднее арифметическое.Шаг 5: Упорядочить массив по убыванию модулей
Наконец, упорядочьте массив по убыванию модулей. Для этого, отсортируйте элементы массива по их модулям в порядке убывания.Надеюсь, эти шаги помогут вам решить задачу. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их!


Топ вопросов за вчера в категории Информатика

Информатика 558

Информатика 33

Информатика 74

Информатика 12

Информатика 10

Информатика 33

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