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

Посчитать разницу элементов в массиве - C++

Восстановить пароль Регистрация
 
joemcjoe
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 26
03.06.2014, 22:22     Посчитать разницу элементов в массиве #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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <ctime>
#include <iostream>
using namespace std;
 
 
 
  template<class Type>
  class Array
  {
  private:
      Type *arr;
      int _size;
  public:
      void Random()
      {
          Type randomNumber;
        for(int i=0;i<_size;i++)
        {
                
                        randomNumber=-5+(rand()% ((100-1) *1 + 1))/Type(10);
                        arr[i]=randomNumber;
                
        }
      }
      Array ( int size)
      {
          _size = size;
         arr = new Type[_size];
         for(int i=0;i<_size;i++)
             arr[i]=0;
      }
      void print()
      {
         for(int i=0;i<_size;i++)
              cout << arr[i] << " ";
         cout << endl;
      }
      ~Array() { 
          
          delete[]arr;
      }
    Type diff();
  };
      
 
 
  template<class Type>
  Type Array<Type>::diff()
  {
      Type diff = 0;
      int flag1 = 0 ,flag2 = 0;
      for(int i=0;i<_size;i++)
      {
          if(arr[i]<0) {
              i = flag1;
              break; }
 
      }
 
 
      for(int i=flag1;i<_size;i++)
      {
          if(arr[i]>0)
          {
              flag1 = i;
              break;
          }
      }
 
 
      for(int i=flag1;i<_size;i++) {
          if(arr[i]>0)
          {
              flag2 = i;
              break;
          }}
 
 
      for(int i = flag1; i< flag2; i++)
          diff-=arr[i];
 
 
      return diff;
  }
 
 
 int main()
 {
     srand(time(NULL));
     Array<double> arr(20);
     arr.Random();
     arr.print();
        cout << endl << " Diff between first negative and second positive: " <<  arr.diff() << endl;
        return 0;
 }


Добавлено через 1 час 50 минут
Кто-то что-то посоветует?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2014, 22:22     Посчитать разницу элементов в массиве
Посмотрите здесь:

C++ Посчитать количество нулевых элементов в двумерном массиве
посчитать сколкьо элементов в массиве? C++
C++ В одномерном массиве посчитать сумму элементов до максимального.
В одномерном массиве посчитать сумму элементов до минимального. C++
C++ Посчитать количество различных элементов в массиве
C++ Посчитать количество элементов в одномерном массиве
C++ Посчитать произведение положительных элементов в двумерном массиве
C++ В одномерном массиве посчитать сумму элементов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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