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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.81
Slava0309
1 / 1 / 0
Регистрация: 20.12.2012
Сообщений: 19
11.01.2013, 21:48     Сумму элементов массива, расположенных между первым и последним отрицательными элементами #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
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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2013, 21:48     Сумму элементов массива, расположенных между первым и последним отрицательными элементами
Посмотрите здесь:

C++ Сумма элементов массива, расположенных между первым и последним отрицательными элементами
Массив: Найти сумму элементов массива, расположенных между первым и последним отрицательными элементами. C++
сумму элементов массива, расположенных между первым и последним отрицательными элементами C++
C++ Вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами
Двумерный массив. Сумму элементов массива, расположенных между первым и последним отрицательными элементами C++
C++ Вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами
Найти сумму элементов массива между первым и последним отрицательными элементами C++
C++ Сумма элементов массива, расположенных между первым и последним отрицательными элементами

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 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 просто суммируем оставшееся.
JlightenDev_C++
 Аватар для JlightenDev_C++
61 / 61 / 7
Регистрация: 12.08.2012
Сообщений: 150
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;
}
Yandex
Объявления
11.01.2013, 23:10     Сумму элементов массива, расположенных между первым и последним отрицательными элементами
Ответ Создать тему
Опции темы

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