1 / 1 / 0
Регистрация: 20.12.2012
Сообщений: 19
1

Сумму элементов массива, расположенных между первым и последним отрицательными элементами

11.01.2013, 21:48. Показов 12267. Ответов 2
Метки нет (Все метки)

Задание: Нужно найти сумму элементов массива, расположенных между первым
и последним отрицательными элементами.

вот сама программа, только она не считает между отрицательными элементам, она считаем весь массив!!!
Помогите исправить ошибку



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
41
42
43
//---------------------------------------------------------------------------
 
#include <iostream.h>
#include <windows.h>
#include <stdlib.h>
#include <math.h>
int main(){
SetConsoleOutputCP(1251);
 
int N;
cout<<"Введите количество элементов массива (не более 10) ";
cin>>N;
 
if (N<0 || N>=10) cout<<"Ошибка во вхоных данных "<<endl;
else
 
{
cout<<"Введите элемент массива "<<endl;
 
int A[10];                         //вводим массив
int nno=N+1,npo;
for(int i=0;i<N;i++) {
  cout<<"A["<<i<<"]=";
  cin>>A[i];
 
  if (A[i]<0 && nno>N) nno=i;      // проверка отрицательных элементов
  if (A[i]<0) npo=i;
}
 
int Sum=0;                        //считаем сумму
for (int i=nno; i<=npo; i++)
  Sum=Sum+A[i];
 
if (nno==N+1)        cout<<"Нет отрицательных элементов "<<endl;
else if (nno==npo)   cout<<"Один отрицательный элемент "<<endl;
else if (nno+1==npo) cout<<"Отрицательные числа стоят рядом "<<endl;
else                 cout<<"Сумму элементов массива, расположенных между первым и последним отрицательными элементами = "<<Sum<<endl;
 
}
 
system ("pause");
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.01.2013, 21:48
Ответы с готовыми решениями:

Вычислить сумму элементов массива расположенных между первым и последним отрицательными элементами
В одномерном массиве,состоящем из n вещественных элементов, вычислить: Б)сумму элементов массива...

Вычислить сумму элементов массива расположенных между первым и последним отрицательными элементами
Вычислить в одномерном массиве, состоящем из n действительных элементов, сумму элементов массива,...

Найти сумму элементов массива, расположенных между первым и последним отрицательными элементами
4 В одномерном массиве, состоящем из 20 вещественных элементов, вычислить: сумму элементов...

Найти сумму элементов расположенных между первым и последним отрицательными элементами массива
Дан целочисленный масив размера N.Найти суму элементов расположенных между первым и последним...

2
4299 / 1421 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
11.01.2013, 22:50 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
int main()
{
     int a[10] = {1,-6,4,2,-7,9,-2,4,5,5}, j(-1), k(0), s(0);    
    for(int i = 0; i<10; i++)
        if(a[i]<0) 
             j<0 ? j = i : k = i;
     for(int i = j+1; i<k; i++)
        s+=a[i];
     std::cout<<s<<'\n';
     return 0;
}
Алгоритм вкратце:
Кликните здесь для просмотра всего текста
задаем какой-то переменной уникальное начальное значение (у меня j = -1) и перебором в цикле ищем первый отрицательный элемент. Т.к. индекс массива не может быть отрицательным, то в первом случае проверяем, отрицательна ли j, если да, то присваиваем ей индекс этого отр. элемента в массиве. В остальных случаях проверяем так же j (условие теперь выполняться не будет) и остальное (индексы отр. элементов) до конца цикла пишем в другую переменную (у меня k). Далее вторым циклом от j до k просто суммируем оставшееся.
0
64 / 64 / 33
Регистрация: 12.08.2012
Сообщений: 151
11.01.2013, 23:10 3
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
41
42
43
44
45
46
47
48
#include <iostream>
#include <conio.h>
 
int main()
{
    int size(0), iBegin(0), iEnd(0), isumm(0);
    do
    {
    system("CLS");
    std::cout << "Size of array = ";
    std::cin >> size;
    }while(size < 1 || size > 10);
    int *array = new int[size];
    for(int i = 0; i < size; i++)
    {
        system("CLS");
        std::cout << "Array[" << i+1 << "] = ";
        std::cin >> array[i];
    }
    for(int i = 0; i < size; i++)
    {
        if(array[i] < 0)
        {
            iBegin = i;
            break;
        }
    }
    for(int i = size - 1; i >= 0; i--)
    {
        if(array[i] < 0)
        {
            iEnd = i;
            break;
        }
    }
    /*for(int i = 0; i < size; i++) Возможно пригодится...
    {
        std::cout << array[i] << " ";
    }*/
    for(int i = iBegin + 1; i < iEnd; i++)
    {
        isumm += array[i];
    }
    system("CLS");
    std::cout << "Sum = " << isumm;
    getch();
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.01.2013, 23:10
Помогаю со студенческими работами здесь

Вычислить сумму элементов массива, расположенных между первым и последним отрицательными элементами
Добрый день. Прошу помощи в написании программы. 1 и 2 задание сделал вроде, помогите с третьим,...

Найти произведение и сумму элементов массива, расположенных между первым и последним отрицательными элементами
Объясните пожалуйста почему функции выдают нули :) #include &quot;pch.h&quot; #include &lt;iostream&gt;...

Найти произведение и сумму элементов массива, расположенных между первым и последним отрицательными элементами
Привет, нужно найти произведение и сумму элементов массива, расположенных между первым и последним...

Массив: Найти сумму элементов массива, расположенных между первым и последним отрицательными элементами.
Помогите, пожалуйста. Как решить в с++. Дан целочисленный массив размера N. Найти сумму...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru