【发布时间】:2019-09-04 02:42:39
【问题描述】:
我正在使用嵌套的 for 循环按升序重新排列数组。
问题在于第二个(嵌套)for 循环中的 (y = x + 1)。我收到以下错误: 'x' 的名称查找已更改为 ISO 'for' 范围 [-fpermissive]
int i, y, temp;
cout << "How many elements should be stored in array? ";
cin >> i;
int arr [i];
for (int k = 0; k < i; k++)
{
cout << "Enter value for element at index " << k << ": ";
cin >> arr[k];
}
for( int x = 0; x < i; x++);
{
for (int y = x + 1; y < i; y++)
{
if (arr[y] < arr[x])
{
temp = arr[x];
arr[x] = arr[y];
arr[x] = temp;
}
}
}
错误:“x”的名称查找已更改为 ISO 'for' 范围 [-fpermissive]
【问题讨论】:
-
int arr [i];不是有效的 C++。谁在支持这类问题? -
您连续两次分配给
arr[x]的事实让我相信那里有错误。你可能打算写arr[y] = temp;。 -
代码中没有定义其他的x。
-
@NeilButterworth 问题有问题和代码有问题是有区别的。
int arr[i];是个问题,但问题在于代码,而不是问题。 -
@François 这是一个糟糕的问题,原因有很多——主要是它不会编译,如果它编译了,它会要求我们调试它。如果你是这样的人(最近经常发生这种情况),请不要。