gpt4 book ai didi

c - 数组下标的无效类型 'int*[__complex__ int]'

转载 作者:太空宇宙 更新时间:2023-11-04 07:06:45 25 4
gpt4 key购买 nike

这是我的代码,我无法找出哪里出错了。

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

请帮助..我正在努力在这里实现堆排序。提前致谢

最佳答案

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

    arr[2i] = arr[i];

应该是:

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

关于c - 数组下标的无效类型 'int*[__complex__ int]',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32362925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com