Ну, вы нигде не использовали std::vector<int>
в вашем коде, скорее, у вас есть обычные массивы с обоими размерами 500
. Это не было требованием.
Прочитайте о std :: vector <> и используйте их вместо этих массивов, выделяя размер только того, что хочет иметь пользователь (т.е. соответственно пользовательский ввод count
).
Во-вторых, вы могли бы выполнить вычисления для каждого из элементов вектора input
, копируя / заполняя векторный массив output
.
Вот пример кода: ДЕМО ЗДЕСЬ
#include <iostream>
#include <vector>
int main()
{
std::cout << "Enter number of elements in array\n";
std::size_t count; std::cin >> count;
std::cout << "Enter " << count << " numbers \n";
std::vector<int> input(count, 0);
// input element
for (int& element : input) std::cin >> element;
std::vector<int> output; output.reserve(count); // reserve memory for elements
// apply to the output vector: for that
// simply reverse iterate input array using the while loop,
// emplace back the calculated result to the output array
while (count--)
{
output.emplace_back((input[count] * 8) + 100);
}
// print out the output
std::cout << "Reversed Array\n";
for (const int element : output) std::cout << element << " ";
return 0;
}
выход :
Enter number of elements in array
10
Enter 10 numbers
1 2 3 4 5 6 7 8 9 10
Reversed Array
180 172 164 156 148 140 132 124 116 108
При этом вы могли бы также сделать это с помощью функции алгоритма std std::trasform
. Для этого выполняет итерацию в обратном порядке вектора input
в std::transform
с использованием лямбда-функции (которая вычисляет необходимое) и вставляет обратно в вектор output
.
СМОТРЕТЬ В ЖИЗНИ
#include <algorithm> // std::transform
auto doMath = [](int element) { return (element * 8) + 100; }; // lambda which does the calculation
std::transform(input.crbegin(), input.crend(), std::back_inserter(output), doMath);
или вы даже можете обмануть пользователя с помощью , имеющего только один векторный массив во всей программе, где вы будете хранить пользовательских входных данных непосредственно после выполнения вычисления следующим образом:
СМОТРЕТЬ В ЖИЗНИ
#include <iostream>
#include <vector>
int main()
{
std::size_t count; std::cin >> count;
std::vector<int> vec; vec.reserve(count);
// take the input and store the calculated value directly in the vec array
while (count--)
{
int element; std::cin >> element;
vec.emplace_back((element * 8) + 100);
}
return 0;
}