@tmtimuchin

Как в C++ создать массив, состоящий из разности элементов двух других массивов?

Задание следующее: есть 3 массива A, B и C по 10 элементов в каждом. Нужно создать четвёртый массив Y, который заполнен разностью элементов массивов A и B (например A = { 2, 3 }, B = { 1, 2 }, то Y = { 2-1, 3-2 }), но только тех, что соответствуют положительным элементам массива C.
Я только начал изучать C++, поэтому не знаю как провести такую операцию вычитания с массивами и при этом заполнять новый массив. Условие с массивом C я выполнил. Вот код:
#include <iostream>

using namespace std;

int main()
{
    // Определяю массивы
    int a[10] = { -7, 17, 69, 25, 88, 14, 84, 36, -4, 75 };
    int b[10] = { 16, -30, 11, 39, 15, -36, 12, 6, -30, 5 };
    int c[10] = { -19, 35, -6, 15, -9, 13, 8, 12, -33, 42 };
    
    // Определяю массив y
    for (int c_key : c) {
        if (c_key > 0) {
            int y[] = // и вот что здесь писать я уже не знаю
        }
    }
}
  • Вопрос задан
  • 777 просмотров
Решения вопроса 1
@FaulerAffe
-
#include <iostream>
#include <vector>
using namespace std;

int main()
{
    int a[10] = { -7, 17, 69, 25, 88, 14, 84, 36, -4, 75 };
    int b[10] = { 16, -30, 11, 39, 15, -36, 12, 6, -30, 5 };
    int c[10] = { -19, 35, -6, 15, -9, 13, 8, 12, -33, 42 };
    //Вариант, когда размер y равен 10:
    int y[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    
    for (int i = 0; i < 10; i++)
    {
        if (c[i] > 0)
        {
            y[i] = a[i] - b[i];
        }
    }
    
    for (int i = 0; i < 10; i++)
    {
        cout << y[i] << " ";
    }
    
    cout << endl;
    //Вариант, когда размер y неизвестен:
    vector<int> y2;
    int counter = 0;
    
    for (int i = 0; i < 10; i++)
    {
        if (c[i] > 0)
        {
            y2.push_back(a[i] - b[i]);
            counter++;
        }
    }
    
        for (int i = 0; i < counter; i++)
    {
        cout << y2[i] << " ";
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы