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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2013, 19:11   #1
BaTpyXaaa
Пользователь
 
Регистрация: 06.11.2013
Сообщений: 40
Печаль Массивы

Масив n вещественных величин.
1)Найти произведение отрицательных элементов массива.
2)Найти сумму положительных элементов массива расположенных после минимального элемента.
3)Изменить порядок следования элементов в массиве на обратный.

Смог решить ток первое:
Код C
Код:
#include <iostream.h>
#include <cstring>
using namespace std;
int main()
{
 int n;
cin>>n;
float a[n];
float res=1;
for (int i = 0; i<n; i++)
    cin >> a[i];
for (int i = 0; i<n; i++)
    if (a[i] > 0)
          res*=a[i];
cout << res;
}
Помогите с 2 и 3 =\
Не знаю что делать дальше
BaTpyXaaa вне форума Ответить с цитированием
Старый 14.12.2013, 19:40   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

извините, что влезаю, но 1-е Вы решили чуток неверно.
Цитата:
Код:
if (a[i] > 0)
- это положительные элементы, а в задании: "произведение отрицательных элементов массива"
измените знак на противоположный if (a[i] < 0) и будьте внимательней.

А что у Вас не получается со вторым и третьим заданием? Не можете номер минимального элемента найти? Или не знаете, как перебрать в цикле элементы массива, расположенные после минимального?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.12.2013, 16:04   #3
BaTpyXaaa
Пользователь
 
Регистрация: 06.11.2013
Сообщений: 40
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
извините, что влезаю, но 1-е Вы решили чуток неверно. - это положительные элементы, а в задании: "произведение отрицательных элементов массива"
измените знак на противоположный if (a[i] < 0) и будьте внимательней.

А что у Вас не получается со вторым и третьим заданием? Не можете номер минимального элемента найти? Или не знаете, как перебрать в цикле элементы массива, расположенные после минимального?!
как перебрать в цикле элементы массива, расположенные после минимального?!
BaTpyXaaa вне форума Ответить с цитированием
Старый 15.12.2013, 16:34   #4
BaTpyXaaa
Пользователь
 
Регистрация: 06.11.2013
Сообщений: 40
По умолчанию

Код:
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int n;
cout<<"Enter number:"<<endl;
cin>>n;
int *a= new int[n];
float res=1;
for (int i = 0; i<n; i++)
    cin >> a[i];
for (int i = 0; i<n; i++)
    if (a[i] < 0)
          res*=a[i];

if (n!=0);
{int min =a[0];
for(int i=1; i<n; i++)
	if(min>a[i])
		min=a[i];
cout<<"Min="<<min<<endl;
cout<<"Negative res="<<res<<endl;
}

system ("pause");
	return 0;
}
Вот нашёл мин значение! Как найти сумму положительных элементов массива расположенных после минимального элемента? как перебрать в цикле элементы массива, расположенные после минимального?!

Как сделать? Чтобы после ввода размера массива выскакивала Enter Element 1: 2: 3:...... зависимости от размера массива.

Последний раз редактировалось BaTpyXaaa; 15.12.2013 в 16:38.
BaTpyXaaa вне форума Ответить с цитированием
Старый 15.12.2013, 23:41   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Вот нашёл мин значение!
ну, это хорошо. вот только Вас не интересует минимальное значение, Вас интересует, ГДЕ этот минимальный элемент расположен (точнее его позиция в массиве, а ещё точнее - его ИНДЕКС. Ибо от этого индекса мы и будем крутить цикл.

найти индекс минимального значения можно примерно таким кодом:
Код:
int minIndex =0;
 for(int i=1; i<n; i++)
	if(a[minIndex]>a[i])
		minIndex=i;
 cout<<"Min="<<a[minIndex]<<" index (position) = "<<minIndex<<endl;
....
и, после этого, задание
Цитата:
Найти сумму положительных элементов массива расположенных после минимального элемента.
становится уже намного проще:
Код:
int summa = 0;
for(int i=minIndex+1; i<n; i++)
       if(a[i]>0) summa +=a[i];
cout<<"summa pozitive after min ="<<summa<<endl;


Цитата:
Как сделать? Чтобы после ввода размера массива выскакивала Enter Element 1: 2: 3:...... зависимости от размера массива.
не совсем понял..
Вы так хотите?
Код:
for (int i = 0; i<n; i++)
{  
    cout <<endl<<"Enter Element " << i <<":"
    cin >> a[i];
}

Последний раз редактировалось Serge_Bliznykov; 15.12.2013 в 23:43.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерные массивы, двумерные массивы, строки Sand093 C++ Builder 11 20.05.2012 21:48
Двумерные массивы(матрица) 2)Строковые массивы(строки): 3)Структуры nuriyat Помощь студентам 1 21.01.2012 16:16
Двумерные массивы(массивы указателей на массивы) krytishka99 Помощь студентам 1 29.12.2011 19:51
указатели на массивы и массивы указателей blacktener Общие вопросы C/C++ 16 13.06.2011 20:45
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12