C语言关于输入一个数组,升序输出该数组,程序有地方出错了,求怎么改正

C语言关于输入一个数组,升序输出该数组,程序有地方出错了,求怎么改正

问题描述:

、程序前面已经输入了a【1】到a【5】,且此时i=0,为什么这个程序接下来的比较中,好像a【5】没意义参与比较,就比如,输入数组为5 4 3 2 1,输出的数里面没有1,有两个5

出问题程序如下:

while(i<4){
    i++;
    j=i;
    while(j<5)
    {
        j++;
        if(a[i]>a[j])
        {
            t=a[i];
            a[i]=a[j];
            a[j]=t;
        }
    }
}
for(i=1;i<=5;i++){
    printf("%g\n",a[i]);
}

数组下标得从0开始