繁体   English   中英

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

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

这是我的代码,我无法找出我要去哪里。

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

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

在C 2i是一个复数(虚数)(编译器错误消息实际上是在告诉您这一点)。 您需要使用*运算符进行乘法运算。 将所有出现的arr[2i]更改为arr[2*i] ,例如

    arr[2i] = arr[i];

应该:

    arr[2*i] = arr[i];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM