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

Сумма элементов массива - C++

Восстановить пароль Регистрация
 
Danila_Ufa
0 / 0 / 0
Регистрация: 26.01.2011
Сообщений: 5
28.02.2011, 12:55     Сумма элементов массива #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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
 
template < typename T> 
void sort(T *a, long N)//сортировка по возрастанию
{
    long i = 0,  j = N;
   T temp,p;
   p = a[N/2];
   do{
   while(a[i]<p) i++;
   while(a[j]>p) j--;
   if(i<=j)
   {
       temp = a[i]; a[i]= a[j]; a[j] = temp;
       i++; j--;
   }
   }while(i<=j);
   if(j>0) sort(a,j);
   if(N>i) sort(a+i,N-i);
 
}
 
// Главная**********************************************
int main()
{
     int k; // Одну и ту же переменную можно использовать дважды и более для разных операций
     setlocale(LC_ALL, "Russian");
 
     cout << "Введите кол-ство символов: ";
     cin >> k; // Вводим кол-ство элементов
 
     int* a = new int [k]; // Выделяем память под массив
     
     for(int i = 0; i < k; i++) { // Заполняем массив 
          cin >> a[i];       // Введёнными с клавиатуры цифрами
          cout << a[i] << ' ';
     }
 
     sort(a, k-1);  // Сортируем
     cout << "\nОтсортированный массив: ";
     for(int i = 0; i < k; i++) // Выводим отсортированный массив
          cout << a[i] << ' ';
 
     delete[] a; // Освобождаем память.
 
//***********************************************************
     
     cout << "\nВведите кол-ство элементов: ";
     cin >> k;  // Вводим кол-ство элементов для второго массива
 
     int* b = new int[k];  // Выделяем под него память.
     
     for(int i = 0; i < k; i++) {  // Вводим значения
         cin >> b[i];
         cout << b[i] << ' ';
     }
 
     sort(b, k-1);  // Сортируем
     cout << "\nОтсортированный массив: ";
     for(int i = 0; i < k; i++)  // Выводим отсортированный
         cout << b[i] << ' ';
 
     delete[] b; // Освобождаем память.
//**************************************
   
//Сумма а и b массивов в массив с
int* c = new int[k];
 
for (int i=0; i<k; i++)
 {c[i]=a[i]+b[i];
cout<<c[i];}
 
cout<<"\n";
 
for(int i=0; i<k; i++)
  cout << c[i]<<' ';
   
delete[] c; // освобождаем память
    system("PAUSE");
    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2011, 12:55     Сумма элементов массива
Посмотрите здесь:

Составить программу, в которой вычислить z=(s1+s2)/(k1*k2), где s1 и k1 - сумма и количество положительных элементов массива Х[N]; s1 u k2 - сумма C++
Сумма элементов массива C++
C++ Сумма элементов массива
Сумма положительных элементов, произведение элементов массива C++
Сумма элементов массива, у которых сумма индексов, на которых они находятся, - четное число. Проверить код C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CASPER_32
-45 / 28 / 5
Регистрация: 28.02.2011
Сообщений: 74
28.02.2011, 13:43     Сумма элементов массива #2
Попробуй освобождать память под массивы в конце программы:

. . . . . .
delete[] c; // Освобождение памяти
delete[] a;
delete[] b;
system("PAUSE");

}
Danila_Ufa
0 / 0 / 0
Регистрация: 26.01.2011
Сообщений: 5
28.02.2011, 14:59  [ТС]     Сумма элементов массива #3
не помогло. У меня она почему та складывает элементы между собой второго массива. Я думаю у меня с циклом сложения что то не так...
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
01.03.2011, 03:38     Сумма элементов массива #4
C++
1
     delete[] a; // Освобождаем память.
ты вот такие строчки в середине закомментируй, иначе сначала массив освобождается, а потом из него что-то берётся
где гарантия, что массивы одного размера ?
и что в третьем они поместятся ?

C++
1
     sort(b, k-1);  // Сортируем
странный вызов, почему не k ?
по ходу из-за функции, так в функции надо это делать
Yandex
Объявления
01.03.2011, 03:38     Сумма элементов массива
Ответ Создать тему
Опции темы

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