С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/47: Рейтинг темы: голосов - 47, средняя оценка - 4.57
3 / 3 / 0
Регистрация: 26.11.2011
Сообщений: 84

Вычитание двух массивов

19.12.2011, 15:53. Показов 9864. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напишите функцию, которая поэлементно вы читает из первого массива второй, и запи сывает результаты вычитаний в третий мас сив. Массивы содержат элементы типа int.  Каждый массив передается в функцию чере з пару параметров - указатель на первый элемент, и размер м ассива. 

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

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

Общая последовательность действий програ ммы такова:
1) Выделяется память под массив(ы) небол ьшого объема (5-10 элементов, на Ваше усмотрение).
2) Массив(ы) вводятся с клавиатуры.
3) Массив(ы) обрабатываются функцией из  задания.
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
#include <iostream>
#include <stdlib.h>
using namespace std;
void mas_in1(int* a1, int size);
void mas_in2(int* a2, int size);
void mas_out(int* a, int size);
int* sub(int* a1, int* a2, int size) ;
int main(int argc, char *argv[])
{
    int* mas1,*mas2,*result;
    int size;
    cout << "Enter size: ";
    cin >> size;
    mas1 = (int*)malloc(size);
    mas2 = (int*)malloc(size);
    result = (int*)malloc(size);
    mas_in1(mas1, size);
    mas_in2(mas2, size);
    cout << "Sub" << endl;
    result = sub(mas1, mas2, size);
    mas_out(result, size);
    free(mas1);
    free(mas2);
        return 0;
}
void mas_in1(int* a1, int size)
{
    for (int i=0; i<size; i++)
        cin >> a1[i];
}
void mas_in2(int* a2, int size)
{
    for (int i=0; i<size; i++)
        cin >> a2[i];
}
void mas_out(int* a, int size)
{
    for (int i=0; i<size; i++)
        cout << a[i] << " ";
}
int* sub(int* a1, int* a2, int size)
{
        int *temp = (int*)malloc(size);
        for (int i=0; i < size; i++)
    {
        temp[i] = a1[i] - a2[i];
    }
        return temp;
}
в итоге сказали,что надо меньше код,убрать ненужное
помогите
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.12.2011, 15:53
Ответы с готовыми решениями:

Произвести сумму (вычитание) двух одномерных массивов целых чисел, в каждом элементе которого записана одна десятичная цифра
Доброго времени суток. у меня вопрос по заданию: *Произвести сумму(вычитание) двух одномерных массивов целых чисел, в каждом элементе,...

Создать два массива, которые будут содержать: все четные элементы двух массивов; все нечетные элементы двух массивов
Помогите, пожалуйста, с программой.. Ввести с клавиатуры два одномерных массива произвольной размерности (например, 3) и создать два...

Вычитание двух отрицательных чисел
вычитание двух отрицательных чисел,помогите с кодом plz #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; ...

12
31 / 31 / 3
Регистрация: 10.05.2011
Сообщений: 120
19.12.2011, 15:58
По поводу Ваших "malloc" и "free", я указал вот тут - Напишите функцию, которая вычисляет среднее арифметическое элементов массива
1
3 / 3 / 0
Регистрация: 26.11.2011
Сообщений: 84
19.12.2011, 16:04  [ТС]
а кроме этого? сказали ошибка в том чтобы функции не выделяли память при вводе этих двух массивов,и не создавался фантомный третий, а то он дважды создает

Добавлено через 3 минуты
слишком громоздко,упростить еще как то можно?
0
31 / 31 / 3
Регистрация: 10.05.2011
Сообщений: 120
19.12.2011, 16:07
У Вас написано что память выделять статически! Это значит вот так:
C++
1
2
3
 int mas1[10]; // - первый массив
 int mas2[10]; // - второй массив
int  res[10]; // - сюда пишем результат!
0
3 / 3 / 0
Регистрация: 26.11.2011
Сообщений: 84
19.12.2011, 16:16  [ТС]
нужно оставить один массив (void mas_in) и он вызывается дважды
как это реализовать и что измениться в коде?
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
19.12.2011, 16:31
Цитата Сообщение от Depressa Посмотреть сообщение
нужно оставить один массив (void mas_in)
Думаете так можно объявлять массив?
0
3 / 3 / 0
Регистрация: 26.11.2011
Сообщений: 84
26.12.2011, 19:32  [ТС]
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
#include <iostream>
#include <stdlib.h>
using namespace std;
 
void mas_in(int* a, int size)
{
    for(int i = 0; i < size; ++i)
        cin >> a[i];
}
void mas_out(int* a, int size)
{
    for(int i = 0; i < size; ++i)
        cout << a[i];
}
 
void sub(int* a1,int* a2,int* result, int size)
{
     for(int i = 0; i < size; ++i)
         result[i]=a1[i]-a2[i];
}
 
 
int main(int argc, char *argv[])
{
    int size = 7;
    int mas1 [size],mas2 [size],result [size];
    mas_in (mas1,size);
    mas_in(mas2,size);
    mas_out(mas1,size);
    mas_out(mas2,size);
    sub (mas1,mas2,result,size);
    mas_out(result,size);
    return 0;
}
вот само задание
Напишите функцию, которая поэлементно вы читает из первого массива второй, и запи сывает результаты вычитаний в третий мас сив. Массивы содержат элементы типа int.  Каждый массив передается в функцию чере з пару параметров - указатель на первый элемент, и размер м ассива. 

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

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

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




что у меня не правильно?
и если можно объясните и исправьте
заранее спасибо
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
26.12.2011, 19:39
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
#include <iostream>
#include <iomanip>
 
void mas_in(int* a, int size)
{
    for(int i = 0; i < size; ++i)
        std::cin >> a[i];
}
 
void mas_out(int* a, int size)
{
    for(int i = 0; i < size; ++i)
        std::cout << std::setw(5) << a[i];
    std::cout << std::endl;
}
 
void sub(int* a1,int* a2,int* result, int size)
{
     for(int i = 0; i < size; ++i)
         result[i]=a1[i]-a2[i];
}
 
int main()
{
    const int size = 7;
    int mas1[size], mas2[size], result[size];
    
    mas_in(mas1,size);
    mas_in(mas2,size);
    
    sub (mas1,mas2,result,size);
    
    mas_out(mas1,size);
    mas_out(mas2,size);
    mas_out(result,size);
    
    return 0;
}
Все правильно было, но вывод был без разделений между элементами. Поправил.
1
3 / 3 / 0
Регистрация: 26.11.2011
Сообщений: 84
26.12.2011, 19:42  [ТС]
а можно ли как-то это сделать без
C++
1
2
std::cout << std::setw(5) << a[i];
    std::cout << std::endl;
а просто cout и cin?
0
 Аватар для Heidel
115 / 115 / 39
Регистрация: 11.10.2011
Сообщений: 649
26.12.2011, 19:43
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Объявление размера массива
C++
1
const int size = 7;
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
#include <iostream>
#include <stdlib.h>
using namespace std;
 
void mas_in(int* a, int size)
{
    for(int i = 0; i < size; ++i)
    {
        cin >> a[i];
    }
}
void mas_out(int* a, int size)
{
    for(int i = 0; i < size; ++i)
    {
        cout << a[i];
    }
    cout << "\n";
}
 
void sub(int* a1,int* a2,int* result, int size)
{
     for(int i = 0; i < size; ++i)
     {
         result[i]=a1[i]-a2[i];
     }
}
 
 
int main(int argc, char *argv[])
{
    const int size = 7;
    int mas1 [size],mas2 [size],result [size];
    mas_in (mas1,size);
    mas_in(mas2,size);
    mas_out(mas1,size);
    mas_out(mas2,size);
    sub (mas1,mas2,result,size);
    mas_out(result,size);
    return 0;
}
1
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
26.12.2011, 19:43
Depressa, Напишите после всех инклюдов
C++
1
using namespace std;
И уберите все std:: из кода.
1
3 / 3 / 0
Регистрация: 26.11.2011
Сообщений: 84
26.12.2011, 19:54  [ТС]
хм, выдает ошибку при компиляции
Не удалось запустить процесс «C:\QtSDK\QtCreator\bin\qtcreator_proces s_stub.exe run \\.\pipe\creator-4768-16118 C:\depa\opopopop-build-desktop-Qt_4_7_4_for_Desktop_-_MSVC2008__Qt_SDK_________\ C:/Users/E786~1/AppData/Local/Temp/qt_temp.xC4768 C:\depa\opopopop-build-desktop-Qt_4_7_4_for_Desktop_-_MSVC2008__Qt_SDK_________\debug\opopopo p.exe "Для закрытия данного окна нажмите <ВВОД>..."»: Операция успешно завершена.
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
26.12.2011, 20:04
Цитата Сообщение от Depressa Посмотреть сообщение
хм, выдает ошибку при компиляци
Чей?.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.12.2011, 20:04
Помогаю со студенческими работами здесь

Вычитание в двоичной системе счисления двух чисел
Помогите написать код. Вычитание в двоичной системе счисления двух чисел. Надо сдать лабу(

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

Структура состоящая из двух дробей и методов работы с ними(сложение, вычитание)
Пишем в Microsoft Visual Studio 2010 -&gt; Win32 Console Application -&gt; C++ Собственно задача такова - создать программу со структурой...

Вычитание массивов
Здравствуйте! Cкажем есть массив a{1,2,3,4,5} и массив b{1,2,3}. Как получить массив C{4,5}.Путем вычитание a-b. Заранее благодарю.

Вычитание массивов
Не получается решить задачу, помогите найти ошибки. При компиляции вылетает Error. program Project2; {$APPTYPE CONSOLE} ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru