Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MonoRec
1 / 1 / 0
Регистрация: 24.11.2013
Сообщений: 84
#1

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

15.12.2013, 18:58. Просмотров 396. Ответов 11
Метки нет (Все метки)

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! Как сиправить? Чтобы выдавало, например: ("Нету нег значений")
Как найти сумму положительных элементов массива расположенных после минимального элемента? Нашел мин значение что делать дальше незнаю =\
Как перебрать в цикле элементы массива, расположенные после минимального?!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2013, 18:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сумма элементов массива (C++):

Составить программу, в которой вычислить z=(s1+s2)/(k1*k2), где s1 и k1 - сумма и количество положительных элементов массива Х[N]; s1 u k2 - сумма - C++
Составить программу, в которой вычислить z=(s1+s2)/(k1*k2), где s1 и k1 - сумма и количество положительных элементов массива Х; s1 u k2 ...

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

C++5 числами из массива при выборе операции показывает результат. (сумма, произведение . элементов массива) - C++
#include &lt;iostream&gt; using namespace std; void main() { int m, i; char type; double res; cout &lt;&lt; &quot;Input 5 numbers&quot; &lt;&lt;...

Произведение элементов массива с четными индексами, сумма элементов между первым и последним нулями - C++
Всем доброго времени суток! Помогите составить программу. Заранее благодарен! Вот условие: ...

Сумма положительных элементов, произведение элементов массива - C++
В одномерном массиве,состоящем из n вещественных элементов,вычислить: 1)Сумму положительных элементов массива 2)произведение элементов...

Сумма элементов массива - C++
Вычислить сумму минимального и максимального элементов массива. Размер массива = 18. Тип данных = действительный. Спасибо.

11
Ev_Hyper
Заблокирован
15.12.2013, 19:10 #2
Цитата Сообщение от MonoRec Посмотреть сообщение
Если в массиве нету отрицательных чисел, мне выдаёт значение 1! Как сиправить? Чтобы выдавало, например: ("Нету нег значений")
if(min>=0){cout<<"Нету отрицательных значений"<<endl;
Цитата Сообщение от MonoRec Посмотреть сообщение
Как найти сумму положительных элементов массива расположенных после минимального элемента? Нашел мин значение что делать дальше незнаю =\
Сохраните индекс минимального элемента в какую-то переменную, и с неё начинайте пересчет.
0
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;
Прописал! Все равно выдаёт то что было =\
0
Ev_Hyper
Заблокирован
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];
}
}
0
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];
}
}
Я переделал получилась каша! Можете полный код написать!
0
Ev_Hyper
Заблокирован
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;
 
}
Немного коряво вышло
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;
 
}
Немного коряво вышло
Спасибо!
0
Ev_Hyper
Заблокирован
15.12.2013, 22:32 #8
Нет проблем
0
MonoRec
1 / 1 / 0
Регистрация: 24.11.2013
Сообщений: 84
15.12.2013, 23:20  [ТС] #9
Оу у меня еще один вопрос =\
А как изменить порядок следования элементов в массиве на обратный?
0
Ev_Hyper
Заблокирован
15.12.2013, 23:23 #10
Не совем понял, вы имеете ввиду инверсию?
0
MonoRec
1 / 1 / 0
Регистрация: 24.11.2013
Сообщений: 84
15.12.2013, 23:27  [ТС] #11
Это 3 задания лабараторки!
  • Найти произведение отрицательных элементов массива.
  • Найти сумму положительных элементов массива расположенных после минимального элемента.
  • Изменить порядок следования элементов в массиве на обратный.
Как я сам понял! Что да инверсию.
0
Ev_Hyper
Заблокирован
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;
}
0
15.12.2013, 23:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2013, 23:40
Привет! Вот еще темы с ответами:

Сумма элементов массива - C++
Как найти сумму элементов массива, расположенных между первым и вторым положительными элементами

Сумма элементов массива - C++
Здравствуйте, помогите пожалуйста. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму элементов...

Сумма элементов массива - C++
Подскажите, можно как то упростить следующую строку? STUD1.SES+STUD1.SES+STUD1.SES+STUD1.SES+STUD1.SES

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru