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

Некорректно работает функция sum! Она должна искать сумму между первым и последним положительным элементами! - C++

Восстановить пароль Регистрация
 
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
20.11.2012, 21:43     Некорректно работает функция sum! Она должна искать сумму между первым и последним положительным элементами! #1
Некорректно работает функция sum! Она должна искать сумму между первым и последним положительным элементами! Когда первый элемент отрицательный вылетает ошибка! Что здесь не так?

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
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <time.h>
#include <conio.h>
 
const int n=10;
 
using namespace std;
void inp(int []);
void out(int []);
void min(int [],int);
void sum(int []);
 
int main()
{
    srand(time(0));
    int a[n];
    inp(a);
    out(a);
    int m=a[0];
    min(a,m);
    sum(a);
    getch();
    return 0;
            
}
void inp(int a[n]){
     for(int i=0;i<n;i++)
            a[i]=rand()%5-1;}
            
void out(int a[n]){
     cout<<"You mass:\n";
     for(int i=0;i<n;i++)
             cout<<a[i];}
 
void min(int a[n],int m){
     for(int i=0;i<n;i++)
      if(m>a[i]) m=a[i];
    cout<<endl;
    cout<<"Min = "<<m;}
 
void sum(int a[n]){
     int pos,pos1,suma=0;
     for(int i=0;i<n;i++)
        if(a[i]>0){ 
           pos=i; 
           break;}
           
     for(int i=pos;i<n;i++){
     if(a[i]>0){ 
           pos1=i; 
           continue;
           }
           else
           break;}
     for(int i=pos;i<=pos1;i++)
     suma+=a[i];
     cout<<endl<<"Suma = "<<suma;
     }
Добавлено через 4 минуты
Уже не нужно, уже нашел ошибку)

Добавлено через 10 минут
Как сделать так чтобы сначала были нули, а затем все остальные элементы?
C++
1
2
3
4
5
6
7
8
void transform(int a[n]){
     int tmp;
     for(int i=0;i<n;i++)
         if(a[i]== 0){
            tmp=a[i-1];
            a[i-1]=a[i];
            a[i]=tmp;
            }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2012, 21:43     Некорректно работает функция sum! Она должна искать сумму между первым и последним положительным элементами!
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TrueBit
 Аватар для TrueBit
95 / 95 / 12
Регистрация: 19.11.2012
Сообщений: 195
21.11.2012, 00:57     Некорректно работает функция sum! Она должна искать сумму между первым и последним положительным элементами! #2
Вот не самый лучший, но простой алгоритм:
1) В функции transform создать массив тогоже размера
2) записывать в новый массив, начиная с конца(читать исходный массив тоже с конца) все ненулевые эл-ты.
3) оставшиеся эл-ты забить нулями
4) перезаписать исходный массив новым "отсортированным" массивом.
Yandex
Объявления
21.11.2012, 00:57     Некорректно работает функция sum! Она должна искать сумму между первым и последним положительным элементами!
Ответ Создать тему
Опции темы

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