Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2021, 14:46   #1
олег17
Новичок
Джуниор
 
Регистрация: 03.02.2021
Сообщений: 2
По умолчанию коллеги подскажите как оптимизировать

//1. Имеется массив из 10 элементов. Необходимо:
//- найти среднее арифметическое всех элементов массива
//- посчитать сумму элементов между максимальным и минимальным элементом массива
//- суммировать все четные и перемножить все нечетные элементы массива.
//- найти положение максимального элемента массива и если индекс этого элемента – четный, то сдвигаем массив на 3 позиции влево, а если нечетный – на 4 позиции вправо.

#include <iostream>
#include <time.h>
#include <cmath>
using namespace std;
int main()
{
srand(time(NULL));
const int N = 10; // размер массива
int i,min_val,max_val;
int index_min=0;
int index_max=0;
int sum=0;
int nums[N];
for(i=0;i<N;i++)


for(i=0;i<N;i++)nums[i]=rand()% 100;
for(i=0;i<N;i++)
cout<<"Это элемент массива["<<i<<"]: "<<nums[i]<< endl << endl;



for (int i = 0; i<N; i++){
if (nums[i] % 2 == 0) // проверка на четность
sum += nums[i];}
cout << "Сумма четных элементов массива равна : " << sum << endl;


int sum3 = sum;
for (int i = 0; i<N; i++){
if (nums[i] % 2 != 0) // проверка не четность
sum3 *= nums[i];}
cout << "Сумма не четных элементов массива перемноженая равна : " << sum3 << endl << endl;


int sum2 = 0;
for (i=0; i<N; i++)
sum2+=nums[i];
cout << "Среднее арифметическое : " << sum2 << endl;


min_val=max_val=nums[0];
for(i=1;i<N;i++)
{
if(nums[i]<min_val)
{
min_val=nums[i];
index_min=i;
}
if(nums[i]>max_val)
{
max_val=nums[i];
index_max=i;
}
};
cout<<"Номер элемента массива с минимальным значением : "<<index_min<<"("<<min_val<<")"<<en dl;
cout<<"Номер элемента массива с максимальным значением: "<<index_max<<"("<<max_val<<")"<<en dl;
cout<< endl;


int sum1 = 0;
if(index_min<index_max)
for( i=index_min+1;i<index_max;i++)
sum1+=nums[i];
else
for(i=index_max+1;i<index_min;i++)
sum1+=nums[i];
cout<<"Сумма значений элементов,находящихся между элементами с минимальным и максимальным значением: "<<sum1<< endl;

int temp = 0;
temp = nums[0];
for(int i = 0; i < 10; i++){
if (nums[i] > temp) {
temp = nums[i];
temp = i;
}
}
for(int i = 0; i < 10; i++)
if (temp %2 ==0)
(nums[i] = nums[i+3]);
else
for(int i = 0; i < 10; i++)
(nums[i] = nums[i-4]);
cout <<" массив смещен : " << nums[i] << endl;


return 0;
}
// работает код честно говоря никак, выше указаны условия задачи. кто может откликнитесь, не успеваю и ума не приложу как оптимизировать и заставить его работать. заранее спасибо
олег17 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите на С#, как оптимизировать/переписать эту задачу Aleksandr H. Помощь студентам 3 12.11.2016 14:17
КОЛЛЕГИ ЧТО НЕПРАВИЛЬНО В КОДЕ HTML/CSS? nikytt HTML и CSS 4 06.12.2015 21:30
Коллеги, что делать? mrMeerkat Свободное общение 113 20.09.2014 03:37
Коллеги, помогите с решением! Jekeel2 C# (си шарп) 3 29.12.2013 20:11
Как оптимизировать? А)-(дрей Microsoft Office Excel 31 12.04.2011 21:38