关于#c语言#的问题:请问我哪些地方写错了啊

这是题目:

img

img

这个是我写的:

float fun(float a[],int n)
{
    int i=0,j=0,t;
    float z=0;
    for(i=0;ifor(j=0;jif(a[j]>a[j+1])
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
    }
    if(n%2==1)
    {
        z=a[n/2]*1.0;
    }
    else
    {
        z=1.0*(a[n/2]+a[n/2-1])/2
    }
    return z;
}

请问我哪些地方写错了啊?谢谢

第23行最后少了分号,另外输入的是浮点型,你在交换时用的变量t定义的是整型,容易出错。都定义成float

数组是float类型,但你的交换变量t却定义为int类型,导致排序过程中,浮点数小数部分值丢失,所以结果就错误了

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:C 语言中 ## 的使用

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^