冒泡法的排列问题,可以运行但不能排列

img

img


为什么无法排列出来


```c
#include<stdio.h>
int main()
{
    int n;
    int i,j,temp;
    printf("你要排列的整数的个数是:\n");
    scanf("%d",&n); 
    int a[n];
    for(i=0;i<n;i++)
    {
        printf("请输入第%d个数:",i+1);
        scanf("%d",&a[n]);
    }
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-1-i;j++)
        {
            if(a[j]>a[j+1])
            {
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
        
    }
    printf("排列好后\n");
    for(i=0;i<n;i++)
    {
        printf("第%d个数是:%d",i+1,a[i]);
    }
    return 0;
 } 

```

    scanf("%d",&a[n]);  应该是a[i]   不是a[n]

12行改了

img

#include<stdio.h>
int main()
{
    int n;
    int i,j,temp;
    printf("你要排列的整数的个数是:\n");
    scanf("%d",&n);
    int a[n];
    for(i=0; i<n; i++)
    {
        printf("请输入第%d个数:",i+1);
        scanf("%d",&a[i]);
    }
    for(i=0; i<n-1; i++)
    {
        for(j=0; j<n-1-i; j++)
        {
            if(a[j]>a[j+1])
            {
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }
    printf("排列好后\n");
    for(i=0; i<n; i++)
    {
        printf("第%d个数是:%d",i+1,a[i]);
    }
    return 0;
}


#include<stdio.h>
int main()
{
    int n;
    int i, j, temp;
    printf("你要排列的整数的个数是:\n");
    scanf("%d", &n);
    int a[1024] = {0};
    for (i = 0; i < n; i++)
    {
        printf("请输入第%d个数:", i + 1);
        scanf("%d", &a[i]);
    }
    for (i = 0; i < n - 1; i++)
    {
        for (j = 0; j < n - 1 - i; j++)
        {
            if (a[j] > a[j + 1])
            {
                temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
        }
    }
    printf("排列好后\n");
    for (i = 0; i < n; i++)
    {
        printf("第%d个数是:%d", i + 1, a[i]);
    }
    return 0;
}