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

сложение массивов - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.89
Depressa
3 / 3 / 0
Регистрация: 26.11.2011
Сообщений: 83
30.11.2011, 16:35     сложение массивов #1
Напишите функцию, которая складывает поэлементно два массива, и записывает результаты сложений в третий массив. Массивы содержат элементы типа int. Каждый массив передается в функцию через пару параметров - указатель на первый элемент, и размер массива. 

Также напишите две функции: первая - для вывода элементов массива на экран и вторая - для ввода с клавиатуры. 

В функции main протестируйте работу Ваших функций. Память под массив(ы), с которыми идет работа, выделять/освобождать динамически, через функции malloc/free

Общая последовательность действий программы такова:
1) Выделяется память под массив(ы) небольшого объема (5-10 элементов, на Ваше усмотрение).
2) Массив(ы) вводятся с клавиатуры.
3) Массив(ы) обрабатываются функцией из задания.
4) Массив(ы) выводятся на экран.



массивы статические, ввод вывод через cin и cout
не могу понять как задать два массива и конкретно писать в
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
#include <iostream> 
#include <stdlib.h> 
using namespace std; 
 
void sort(int* a, int size); 
void mas_out(int* a, int size); 
void mas_in(int* a, int size); 
 
int main(int argc, char *argv[]) 
{ 
    здесь
} 
 
void mas_in(int* a, int size) 
{ 
   здесь
} 
 
void sort(int*a, int size) 
{ 
  здесь
} 
 
void mas_out(int* a, int size) 
{ 
   здесь
    cout << endl; 
}
буду признателен с объяснениями
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2011, 16:35     сложение массивов
Посмотрите здесь:

C++ Сложение и присвоение массивов
C++ сложение двумерных массивов
C++ Сложение двух массивов.
C++ Сложение двух массивов
C++ Сложение Массивов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
30.11.2011, 16:59     сложение массивов #2
Цитата Сообщение от Depressa Посмотреть сообщение
Память под массив(ы), с котор ыми идет работа, выделять/освобождать динамически, через функции malloc/free
Цитата Сообщение от Depressa Посмотреть сообщение
массивы статические
...
ввод вывод через cin и cout
Противоречия.
1. Как связаны статические массивы и динамическое выделение памяти?!
2. malloc/free указывает на C, тогда как использование потокового ввода-вывода указывают на С++. Лучше не использовать malloc/free в программах на С++, использующих стандартные библиотеки С++.

Вариант для С. Должен быть работоспособным и для С++.
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
typedef int ValueType;
 
void printArray(ValueType *array, size_t size) {
  size_t i;
  for (i = 0; i < size; ++i)
    printf("%4d", array[i]);
  printf("\n");
}
 
void fillArray(ValueType *array, size_t size) {
  size_t i;
  for (i = 0; i < size; ++i)
    // для ввода вручную:
    //scanf("%d", array[i]);
    array[i] = rand() % 10; 
}
 
void sumArrays(ValueType *a, ValueType *b, ValueType *sum, size_t size) {
  while (size--)
    *sum++ = *a++ + *b++;
}
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  
  size_t size = 10 + rand() % 5;
  ValueType *a, *b, *sum;
 
  a = (ValueType*)malloc(sizeof(ValueType) * size);
  b = (ValueType*)malloc(sizeof(ValueType) * size);
  sum = (ValueType*)malloc(sizeof(ValueType) * size);
 
  fillArray(a, size);
  fillArray(b, size);
 
  printArray(a, size);
  printArray(b, size);
 
  sumArrays(a, b, sum, size);
  printArray(sum, size);
 
  free(a);
  free(b);
  free(sum);
  return 0;
}
Depressa
3 / 3 / 0
Регистрация: 26.11.2011
Сообщений: 83
30.11.2011, 17:03  [ТС]     сложение массивов #3
к сожалению мне только через cin cout
просто задачи все через эти функции принимают

а если не через malloc/free , а new/delete?


ошибся, не статические а одномерные
опечатался здорово(
в С++ среда QT
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
30.11.2011, 17:21     сложение массивов #4
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
#include <iostream>
#include <cstdlib>
#include <ctime>
 
typedef int ValueType;
 
void printArray(ValueType *array, size_t size) {
  size_t i;
  for (i = 0; i < size; ++i)
    std::cout << array[i] << " ";
  std::cout << std::endl;
}
 
void fillArray(ValueType *array, size_t size) {
  size_t i;
  for (i = 0; i < size; ++i)
    // для ввода вручную:
    //std::cin >> array[i]);
    array[i] = rand() % 10; 
}
 
void sumArrays(ValueType *a, ValueType *b, ValueType *sum, size_t size) {
  while (size--)
    *sum++ = *a++ + *b++;
}
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  
  size_t size = 10 + rand() % 5;
  ValueType *a, *b, *sum;
 
  a = new ValueType[size];
  b = new ValueType[size];
  sum = new ValueType[size];
 
  fillArray(a, size);
  fillArray(b, size);
 
  printArray(a, size);
  printArray(b, size);
 
  sumArrays(a, b, sum, size);
  printArray(sum, size);
 
  delete [] a;
  delete [] b;
  delete [] sum;
  return 0;
}
Добавлено через 11 минут
Цитата Сообщение от Depressa Посмотреть сообщение
а если не через malloc/free , а new/delete?
То надо поменять malloc/free на new/delete.
Yandex
Объявления
30.11.2011, 17:21     сложение массивов
Ответ Создать тему
Опции темы

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