数组下标的无效类型'int * [__ complex__ int]'

时间:2015-09-02 20:54:26

标签: c arrays heapsort

这是我的代码,我无法找出出错的地方。

void heapify(int arr[], int n)
{
int i=n/2 , j, temp;
for(i=n/2; i>0; i--)
{
    if(arr[2i]<arr[i])
    {
        temp = arr[2i];
        arr[2i]= arr[i];
        arr[i]= temp;
    }
    if(arr[2i+1]<arr[i])
    {
        temp = arr[2i];
        arr[2i]= arr[i];
        arr[i]= temp;
    }
}
printf("Output:\n");
for(j=1; j<=n; j++)
{
    printf("%d ", arr[j]);
}
}

int main()
{
int arr[11]={0,12,54,21,74,1,46,91,13,76,22}, n=10;
heapify(arr, n);
return 0;
}

它引发了以下错误:

[Error] invalid types 'int*[__complex__ int]' for array subscript

请帮助..在这里努力实施heapsort。提前致谢

1 个答案:

答案 0 :(得分:3)

在C hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 60000 hystrix.command.default.execution.isolation.semaphore.maxConcurrentRequests: 20 ribbon: ConnectTimeout: 10000 ReadTimeout: 60000 中是一个复杂的(虚构的)数字(编译器错误消息实际上正在告诉你这个)。您需要使用2i运算符进行乘法运算。将所有*更改为arr[2i],例如

arr[2*i]

应该是:

    arr[2i] = arr[i];