Для начала оператор for
for (i <= (b-a); i++;) {
написан неправильно. Вы имеете в виду
for ( ;i <= (b-a); i++) {
В этом (обновленном) для l oop
for ( ;i <= (b-a); i++) {
int initialvalue = a;
listofnums[i] = initialvalue;
initialvalue++;
}
все элементы вектора имеют значение a, поскольку переменная initialvalue
определяется в каждой итерации , Поместите объявление переменной вне, l oop.
int initialvalue = a;
for (i <= (b-a); i++;) {
listofnums[i] = initialvalue;
initialvalue++;
}
. Для вывода вектора вы можете использовать, например, основанный на диапазоне для l oop
for ( const auto &item : listofnums )
{
std::cout << item << ' ';
}
std::cout << '\n';
Вот демонстрационная программа.
#include <iostream>
#include <tuple>
#include <vector>
#include <algorithm>
int main()
{
int a = 0, b = 0;
std::cout << "Enter the first number: ";
std::cin >> a;
std::cout << "Enter the second number: ";
std::cin >> b;
std::tie( a, b ) = std::minmax( { a, b } );
std::vector<int> listofnums( b - a + 1 );
int initialvalue = a;
for ( auto &item : listofnums ) item = initialvalue++;
for ( const auto &item : listofnums )
{
std::cout << item << ' ';
}
std::cout << '\n';
return 0;
}
Вывод может выглядеть следующим образом
Enter the first number: 10
Enter the second number: 5
5 6 7 8 9 10