gpt4 book ai didi

代码表现得很疯狂

转载 作者:行者123 更新时间:2023-11-30 20:22:30 24 4
gpt4 key购买 nike

我刚刚编写了一个测试代码,看起来像最大堆的第一次迭代。但它有一个运行时错误。第二个 if 条件表现得很疯狂;它不应该被执行,但不知怎的它却被执行了。

预期输出:8 5 3 7 2
当前输出:3 8 5 7 2

#include <stdio.h>

int a[]={5,8,3,7,2};

void printArray()
{
printf("\nStatus of the array\n");
for(int i=0;i<5;i++)
printf("[%d]",a[i]);
printf("\n");
}

void swap(int x,int y)
{
// printf("%d %d",a[x],a[y]);
a[x]=a[x]+a[y];
a[y]=a[x]-a[y];
a[x]=a[x]-a[y];
}

void maxHeap(int i)
{
int largest=i,right=0,left=0;

left=(2*i)+1;
right=(2*i)+2;

if(a[left] > a[i])
largest=left;

printf("L=%d R=%d",left,right);

if(a[right] > a[i]);
{
printf("\na[right]=%d a[i]=%d",a[right],a[i]);
largest=right;
}
if(largest != i)
swap(largest,i);
}

void main()
{
printArray();
maxHeap(0);
printArray();
}

最佳答案

if(a[right] > a[i]); <--- oops remove this semicolon
{
printf("\na[right]=%d a[i]=%d",a[right],a[i]);
largest=right;
}

关于代码表现得很疯狂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39421603/

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