Этот код C++ не заканчивается в Vscode. Можете ли вы объяснить, почему?
Вот код
минимум два числа
int min(int x,int y)
{
if(x<y)
return x;
else
return y;
}
заполнение минимума братьев и сестер в качестве родителя в двоичном дереве
void minimumtree(int arr[], int b, int n)
{
if(b==0)
return;
else
{
for(int i=0;i<n;i+2)
{
int x=(b+i)/2;
arr[x]=min(arr[b+i],arr[b+i+1]);
}
minimumtree(arr,b/2,n/2);
}
}
int main()
{
leaf input n- количество листьев, b - начало индекса первого листа в массиве
int n,b; cin>>n>>b; int arr[n+b];
for(int i=0;i<n;i++)
cin>>arr[b+i];
ввод запроса
int t;
cin>>t;
int q[t];
for(int i=0;i<t;i++)
cin>>q[i];
minimumtree(arr,b,n);
вывод запроса
for(int i=0;i<t;i++)
cout<<arr[q[i]];
return 0;
}
i+2
не обновляетi
. Это не работает.i
после этого по-прежнему равно нулю. - person Igor Tandetnik   schedule 19.01.2020int q[t];
--int arr[n+b];
-- Эти массивы недопустимы в C++. Массивы в C++ имеют количество элементов, обозначаемое константным выражением, а не значением времени выполнения. Вместо этого используйтеstd::vector
. Во-вторых,VSCode
не является компилятором C++ — это редактор кода — если вы установили Visual C++, опубликованный вами код не будет компилироваться из-за того, что было упомянуто об этих массивах. - person PaulMcKenzie   schedule 19.01.2020i += 2;
будет работать в цикле for - person lukehod   schedule 19.01.2020i+=2
? - person Igor Tandetnik   schedule 19.01.2020