invalid types int[int] for array subscript
Нужно написать программу, которая будет заправшивать ввод двух чисел, а позже выводить все целлые числа между ними (пример: 2 и 5, то программа должна вывести 2, 3, 4, 5), программа должна обязательно использовать массивы. Но компилятор выдаёт invalid types int[int] for array subscript в следующих строках: array[i] = x; cout << array[i] << endl;. Вот исходник:
#include <iostream>
using namespace std;
int main(){
int a, b;
cout << "Prosze, wprowadz liczbe a: ";
cin >> a;
cout << "Prosze, wprowadz liczbe b: ";
cin >> b;
int array_size = (a < b)? b-a : a-b;
int array(array_size);
for(int i = 1, x = a; x < b; x++, i++)
{
array[i] = x;
}
for(int i = 0; i < array_size; i++)
{
cout << array[i] << endl;
}
return 0;
}
P.S. Знаю, что было много вопросов по этой ошибке. Так зачем я задал? Все вопросы по данной ошибке связанны в основном что люди, к примеру, объявляют 2 мерный массив, а обращаются к трёхмерному или более сложные проблемы. Мой же (говно)код отличается от ихнего тем, что мой прост, мал и без каких либо излишеств по типу функций, указателей, классов и т.д.
Ответы (1 шт):
int array(array_size);
Это - объявление переменной array, инициализированной значением array_size.
В вашем варианте нужно что-то вроде (раз array_size во время компиляции неизвестно)
int * array = new int[array_size];
Интересно, что вы допускаете, что числа могут быть введены в обратном порядке, откуда ваше
... (a < b)? b-a : a-b;
но почему тогда вы не учитываете это здесь:
for(int i = 1, x = a; x < b; x++, i++)