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

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

Войти
Регистрация
Восстановить пароль
 
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
#1

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

20.11.2012, 21:43. Просмотров 299. Ответов 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;
            }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2012, 21:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Некорректно работает функция sum! Она должна искать сумму между первым и последним положительным элементами! (C++):

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

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

Неправильно считает сумму между первым и последним положительными элементами - C++
int min, i, n, sum=0, arr,i1,i2; // arr - массив целых чисел, максимальный размер 100 элементов cin &gt;&gt; n; for...

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

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

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

1
TrueBit
96 / 96 / 12
Регистрация: 19.11.2012
Сообщений: 195
21.11.2012, 00:57 #2
Вот не самый лучший, но простой алгоритм:
1) В функции transform создать массив тогоже размера
2) записывать в новый массив, начиная с конца(читать исходный массив тоже с конца) все ненулевые эл-ты.
3) оставшиеся эл-ты забить нулями
4) перезаписать исходный массив новым "отсортированным" массивом.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2012, 00:57
Привет! Вот еще темы с ответами:

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

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

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

Сумму элементов массива, расположенных между первым и последним нулевыми элементами. - C++
Сумму элементов массива, расположенных между первым и последним нулевыми элементами. Вот код: #include &lt;iostream.h&gt; #include...


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

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

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