Я новичок и должен разобратся в массивах более детально. Смотрел на многие варианты, остановился на этом. Скорее всего так и нужно сделать, но чего-то в нем не хватает. Подскажите пожалуйста(
/*Напишите функцию, которая на вход принимает два массива одинаковой длинны
+ параметр, описывающий собственно их длинну; и модифицирует их таким образом,
что в первом массиве в каждой i-той ячейке находится разница этой ячейки и
соответствующей i-той ячейки второго массива,
а во втором массиве в каждой i-той ячейке находится сумма этой ячейки и
соответствующей i-той ячейки первого массива.*/
#include <stdio.h>
#include <iostream>
using namespace std;
int main (){
int x;
cout << "Please imput the length of the arrays" << endl;
cin >> x ;
int arr1 [x] {5,4,3,2};
int arr2 [x] {2,3,4,5};
for (int i = 0; i<=x; i++)
{
arr1 [i] - arr2 [i];
arr2 [i] + arr1 [i];
}
cout << "Result is " << arr1 << endl;
}
Просто вы напрочь игнорируете здравый смысл и правила C++.
int arr1 [x] {5,4,3,2};
int arr2 [x] {2,3,4,5};
В С++ размер массива определяется во время компиляции, а не во время работы. Если уж указываете конкретные значения массива - то просто пишите
int arr1[] = {5,4,3,2};
int arr2[] = {2,3,4,5};
и получите два массива по 4 элемента.
В массиве из x
элементов их и в самом деле x
- от нулевого до x-1
, так что
for (int i = 0; i<=x; i++)
тут вы просто выходите за рамки массива.
Значения вы какие-то вычисляете, но никак их не используете:
arr1 [i] - arr2 [i];
arr2 [i] + arr1 [i];
Да и выводите
cout << "Result is " << arr1 << endl;
просто адрес, где в памяти находится массив...
От вас хотели вот этого:
void func(int* a1, int * a2, int sz)
{
for(int i = 0; i < sz; ++i)
{
int a1i = a1[i];
a1[i] -= a2[i];
a2[i] += a1i;
}
}
Разберитесь, как работает этот код, ну и подумайте, как его верно вызвать.
Без этого усилия - ваш вопрос тянет на закрытие со стандартной формулировкой
Учебные задания допустимы в качестве вопросов только при условии, что вы пытались решить их самостоятельно перед тем, как задать вопрос.
Поэтому я оставляю вам часть решения для самостоятельной работы...
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть строчный массив, нужно с него получить значение и перевести его в double вот так: "12s" = 1
Я не пойму почему при вызове метода print куда мы ложим sArray строковый массив, когда в самом методе указано, что он будет принимать Integer массив,...
В Netbeans 10 при открытии проекта показывает синтаксические ошибки: