用C语言写一个函数,用冒泡法排序

输出的不正确出现了没输入的数字
img


/* Note:Your choice is C IDE */
#include "stdio.h"

//输入
void input(int a[10]){
    int i;
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
}
//冒泡排序
void choose(int a[10]){
    int i,j,temp;
    for(i=1;i<10;i++)
    {
        for(j=9;j>=i;j--)
        {
            if(a[j]<a[j-1]){
                temp=a[j];
                a[j]=a[j-1];
                a[j-1]=temp;
            }
        }    
    }    
}
//输出
void output(int a[10]){
    int i;
    for(i=0;i<10;i++)
        printf("%d\t",a[i]);    
}
void main()
{
    
    int a[10];
    //输入
    input(a);
    //冒泡排序
    choose(a);
    //输出
    output(a);
}

修改如下,供参考:

#include<stdio.h>

int main()
{
    void row(int b[],int n);
    int  a[10];
    for(int i=0;i<10;i++)scanf("%d",&a[i]);
    printf("\n");
    row(a,10);
    for(int g=0;g<10;g++)
           printf("%d ",a[g]);
    
    return 0;
}

void row(int b[],int n)
{
    int j,k,x;
    for(j=0;j<n-1;j++)
        for(k=0;k<n-j-1;k++)
            if(b[k] > b[k+1])
               {x=b[k];b[k]=b[k+1];b[k+1]=x;}
}