gpt4 book ai didi

编译器提示放错了其他地方

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

关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

4年前关闭。




Improve this question



#include<stdio.h>
#include<conio.h>
# define N 10
void main()
{
int i, j, n;
float median, a[N], t;
printf("Enter the number of items\n");
scanf("%d",&n);
for (i=1; i<=n; i++)
scanf("%f",a[i]);
for (i=1; i<=n-1; i++)
{
for (j=1; j<n-i; j++)
{
if(a[j]<=a[j+1])
{
t=a[j];
a[j]=a[j+1] ;
a[j+1]=t;
}
}
else
{
continue;
}
}

if (n%2==0)
median=(a[n/2]+a[n/2+1])/2;
else
median=a[n/2+1];
for (i=1; i<=n; i++);
printf("%f",a[i]);
printf("\n\nMedian is %f\n",median);
}

[尝试从这个问题中得到一些有用的东西:]

在我上面的排序代码中,我收到一个关于放错位置的错误 else .

[原文:]

这是短路的问题,我错位了其他错误
plc 复制此代码并在 turbo c 中尝试,希望您能纠正此错误
只有一个问题

最佳答案

您的编译器提示 else 放错了位置。因为,嗯,有一个 else没有前面的 if :

// ...
for (j=1; j<n-i; j++)
{
if(a[j]<=a[j+1])
{
// ...
} // END OF IF
} // END OF FOR
else
{
continue;
}
// ...
else在您的代码中不遵循 { } if 之后的 block ,而是 for 之后的那个环形。这是一个简单的语法错误。

当代码正确缩进时,这是微不足道的。缩进你的代码。 (编者按:问题中的代码最初根本没有缩进。)

除此之外还有其他问题:
  • #include<conio.h>完全未使用,删除它。 (并且永远不要考虑使用它)
  • void main()这不是 main 的正确签名。功能,试试int main()int main(int argc, char** argv)
  • for (i=1; i<=n; i++)数组的索引来自 0高达 n - 1 .
  • scanf("%f",a[i]);这里的第二个参数需要是指向 float 所在位置的指针。应存储:&(a[i])
  • for (i=1; i<=n; i++);最后的分号使这个循环没有任何用处。一般情况下,请始终使用 { } for 之后的 block 和 if .
  • 关于编译器提示放错了其他地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43386549/

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