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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.89
Depressa
3 / 3 / 0
Регистрация: 26.11.2011
Сообщений: 83
#1

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

30.11.2011, 16:35. Просмотров 4528. Ответов 3
Метки нет (Все метки)

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

Сложение массивов - C++
Произвести сложение двух массивов 5х3 по правилам сложения матриц.

Сложение Массивов - C++
Помогите у меня такая задача есть двумерный массив 225x225 это массив нужно разбить на другие массивы 15x15 (т.е 225 массивов 15х15) и...

Сложение двумерных массивов - C++
помогите пожалуйста с прогой!!! Написать функцию, которая складывает соответствующие элементы двух заданных массивов и заносит...

Сложение и присвоение массивов - C++
Помогите пожалуйста! Ввод-два массива одной длинны.Необходимо их поэлементно сложить и записать в третий массив. Зарание большое...

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

Сложение двух массивов - C++
Вот условие задачи: Your friend is the person who does not like any limitations in the life. And when you said to him that it is totally...

3
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
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;
}
1
Depressa
3 / 3 / 0
Регистрация: 26.11.2011
Сообщений: 83
30.11.2011, 17:03  [ТС] #3
к сожалению мне только через cin cout
просто задачи все через эти функции принимают

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


ошибся, не статические а одномерные
опечатался здорово(
в С++ среда QT
0
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
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.
1
30.11.2011, 17:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2011, 17:21
Привет! Вот еще темы с ответами:

Сложение двух массивов. - C++
Что то я не как не пойму если я пишу вот такой код #include &quot;stdafx.h&quot; #include &quot;conio.h&quot; int aaa = {2,3,4}, bbb = {5,6,7}, ...

CUDA: сложение двумерных массивов - C++
Я новичок, как в CUDA, так и в С++. Задача - сложить два одинаковых массива, число строк и столбцов задается с клавиатуры. Я чувствую,...

ПРОСТЕЙШИЕ ПРОГРАММЫ НА С++ Сложение массивов - C++
Произвести сложение двух массивов 5х3 по правилам сложения матриц. #include &lt;iostream.h&gt; int main() { ...

Сложение массивов в перегруженном операторе - C++
Здравствуйте. Я создала в мейне 2 массива и попыталась их сложить таким образом: m3 = m1 + m2; oper oper::operator+(oper ob2) ...


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

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

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