为什么这个冒泡法用函数写就出现这种问题,不用函数写就能运行出来呀😰

img

你需要把main()函数里面的
Sort(a[10]);
修改为:
Sort(a);
原因是此处调用函数,需要将数组a的首地址传进去,直接写a即可
需要注意,声明数组时才在中括号加数字,表示数组的最大元素数,其他的任何地方都表示索引,比如你写的a[10],表示a的第10个元素

Sorrt(a[10]);
改成
Sorrt(a);

img

#include <stdio.h>

void sort(int a[])
{
    int i,j,t;
    for(i=0;i<9;i++)
    {   //每次会将最大(升序)或最小(降序)放到最后面
        for(j=0;j<9-i;j++)
        {
            if(a[j]>a[j+1])//每次冒泡,进行交换
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
    }
}


int main()
{
    int i;
    int a[10];
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    sort(a);
    for(i=0;i<10;i++)
        printf("%d ",a[i]);
    return 0;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

Sort(a);

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632