Форум программистов, компьютерный форум CyberForum.ru

Сумма элементов массива - C++

Восстановить пароль Регистрация
 
MonoRec
1 / 1 / 0
Регистрация: 24.11.2013
Сообщений: 84
15.12.2013, 18:58     Сумма элементов массива #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#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;
}
Нашел произведение отрицательных элементов массива и мин значение!


Если в массиве нету отрицательных чисел, мне выдаёт значение 1! Как сиправить? Чтобы выдавало, например: ("Нету нег значений")
Как найти сумму положительных элементов массива расположенных после минимального элемента? Нашел мин значение что делать дальше незнаю =\
Как перебрать в цикле элементы массива, расположенные после минимального?!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2013, 18:58     Сумма элементов массива
Посмотрите здесь:

C++ Сумма элементов массива
C++ сумма элементов массива
Сумма элементов массива C++
C++ Сумма элементов массива
C++ Сумма элементов массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,773
15.12.2013, 19:10     Сумма элементов массива #2
Цитата Сообщение от MonoRec Посмотреть сообщение
Если в массиве нету отрицательных чисел, мне выдаёт значение 1! Как сиправить? Чтобы выдавало, например: ("Нету нег значений")
if(min>=0){cout<<"Нету отрицательных значений"<<endl;
Цитата Сообщение от MonoRec Посмотреть сообщение
Как найти сумму положительных элементов массива расположенных после минимального элемента? Нашел мин значение что делать дальше незнаю =\
Сохраните индекс минимального элемента в какую-то переменную, и с неё начинайте пересчет.
MonoRec
1 / 1 / 0
Регистрация: 24.11.2013
Сообщений: 84
15.12.2013, 19:29  [ТС]     Сумма элементов массива #3
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
if(min>=0){cout<<"Нету отрицательных значений"<<endl;

Сохраните индекс минимального элемента в какую-то переменную, и с неё начинайте пересчет.
Сумма

C++
1
2
3
4
5
6
int sum=min;
for (int i = sum; i<n; i++)
{
     if (a[i] > 0)
          sum += a[i];
}
для массива со значениями 1,2,3,4,5 .... сумму находит ту что надо! сумма = 15
для массива со значениями -4,6,2,5..... сумма прокачаться мусор! сумма =182 ?
Может быть у меня ошибка в нахождение суммы!

C++
1
if(min>=0){cout<<"Нету отрицательных значений"<<endl;
Прописал! Все равно выдаёт то что было =\
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,773
15.12.2013, 20:47     Сумма элементов массива #4
Вы начинаете цикл с суммы, и меняете его там же. Поэтому и не работает.
Вот тут находите ваш индекс:
C++
1
2
3
4
if(min>a[i]){
        min=a[i];
index=i;
}
Потом:
C++
1
2
3
4
5
6
for (int i =index; i<n; i++)
{
     if (a[i] > 0)
          sum += a[i];
}
}
MonoRec
1 / 1 / 0
Регистрация: 24.11.2013
Сообщений: 84
15.12.2013, 21:21  [ТС]     Сумма элементов массива #5
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
Вы начинаете цикл с суммы, и меняете его там же. Поэтому и не работает.
Вот тут находите ваш индекс:
C++
1
2
3
4
if(min>a[i]){
        min=a[i];
index=i;
}
Потом:
C++
1
2
3
4
5
6
for (int i =index; i<n; i++)
{
     if (a[i] > 0)
          sum += a[i];
}
}
Я переделал получилась каша! Можете полный код написать!
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,773
15.12.2013, 21:34     Сумма элементов массива #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
void main(){
  
int i=0;
double res=1;
int n,index=0,sum=0;
cout<<"Enter number:"<<endl;
cin>>n;
int *a= new int[n];
 
for (i = 0; i<n; i++)
    cin >> a[i];
for (i = 0; i<n; i++)
    if (a[i] < 0)
          res*=a[i];
int min =a[0];
if (n!=0)
{
    for(i=1; i<n; i++)
    if(min>a[i])
    {
 
        min=a[i];
        index=i;
    }
 
    if(min>=0){cout<<"nety otr"<<endl;}
 
for(i=index;i<n;i++){
    if(a[i]>0)
        sum+=a[i];
}
    cout<<"Minimum,= "<<min<<endl;
    cout<<"Summa,="<<sum<<endl;
 
}
 
system ("pause");
  //  return 0;
 
}
Немного коряво вышло
MonoRec
1 / 1 / 0
Регистрация: 24.11.2013
Сообщений: 84
15.12.2013, 22:29  [ТС]     Сумма элементов массива #7
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
void main(){
  
int i=0;
double res=1;
int n,index=0,sum=0;
cout<<"Enter number:"<<endl;
cin>>n;
int *a= new int[n];
 
for (i = 0; i<n; i++)
    cin >> a[i];
for (i = 0; i<n; i++)
    if (a[i] < 0)
          res*=a[i];
int min =a[0];
if (n!=0)
{
    for(i=1; i<n; i++)
    if(min>a[i])
    {
 
        min=a[i];
        index=i;
    }
 
    if(min>=0){cout<<"nety otr"<<endl;}
 
for(i=index;i<n;i++){
    if(a[i]>0)
        sum+=a[i];
}
    cout<<"Minimum,= "<<min<<endl;
    cout<<"Summa,="<<sum<<endl;
 
}
 
system ("pause");
  //  return 0;
 
}
Немного коряво вышло
Спасибо!
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,773
15.12.2013, 22:32     Сумма элементов массива #8
Нет проблем
MonoRec
1 / 1 / 0
Регистрация: 24.11.2013
Сообщений: 84
15.12.2013, 23:20  [ТС]     Сумма элементов массива #9
Оу у меня еще один вопрос =\
А как изменить порядок следования элементов в массиве на обратный?
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,773
15.12.2013, 23:23     Сумма элементов массива #10
Не совем понял, вы имеете ввиду инверсию?
MonoRec
1 / 1 / 0
Регистрация: 24.11.2013
Сообщений: 84
15.12.2013, 23:27  [ТС]     Сумма элементов массива #11
Это 3 задания лабараторки!
  • Найти произведение отрицательных элементов массива.
  • Найти сумму положительных элементов массива расположенных после минимального элемента.
  • Изменить порядок следования элементов в массиве на обратный.
Как я сам понял! Что да инверсию.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2013, 23:40     Сумма элементов массива
Еще ссылки по теме:

Сумма положительных элементов, произведение элементов массива C++
Сумма элементов массива C++
Произведение элементов массива с четными индексами, сумма элементов между первым и последним нулями C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,773
15.12.2013, 23:40     Сумма элементов массива #12
C++
1
2
3
4
5
6
7
int z=0;
 
for(i=0;i<n/2;i++){
z=a[i];
a[i]=a[n-i-1];
a[n-i-1]=z;
}
Yandex
Объявления
15.12.2013, 23:40     Сумма элементов массива
Ответ Создать тему
Опции темы

Текущее время: 07:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru