无效类型';int*[uuu complex_uuuuint]&x27;数组下标

无效类型';int*[uuu complex_uuuuint]&x27;数组下标,c,arrays,heapsort,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]) {

这是我的代码,我无法找出哪里出了问题

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;
}

请帮助..我正在努力实现heapsort。提前感谢

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

    arr[2i] = arr[i];
应该是:

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

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

    arr[2i] = arr[i];
应该是:

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

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

    arr[2i] = arr[i];
应该是:

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

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

    arr[2i] = arr[i];
应该是:

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

谢谢!这很有帮助,值得知道!不客气,我建议你先考个a,然后再学习,这样你就可以熟悉这门语言的基本知识了,这样你的学习效率会更高,速度也会更快。非常感谢!这很有帮助,值得知道!不客气,我建议你先考个a,然后再学习,这样你就可以熟悉这门语言的基本知识了,这样你的学习效率会更高,速度也会更快。非常感谢!这很有帮助,值得知道!不客气,我建议你先考个a,然后再学习,这样你就可以熟悉这门语言的基本知识了,这样你的学习效率会更高,速度也会更快。非常感谢!这很有帮助,值得知道!不客气,我建议你去读一本书,这样你就可以熟悉这门语言的基本知识,这样你会更有效率,学得更快。