c语言将数组从小到大排序

2024-11-12 02:49:29
推荐回答(2个)
回答1:

有些简单的东西不用指针,用了有时反而会错

这是我以前写的

#include 
int main()
{
    int i,j,x[100],y=0,a;
    printf("请输入数字数量:\n"); 
    scanf("%d",&a);
    printf("请输入各个数字:\n");
    for(i=0;i    {
        scanf("%d",&x[i]);
    }
    printf("\n");
    //输入
    
    for(j=1;j<=(a-1);j++)
    {
        for(i=0;i<(a-j);i++)
        {
            if(x[i]            {
                y=x[(i+1)];
                x[(i+1)]=x[i];
                x[i]=y;
            }
        }
    }
    //冒泡排序
    
    for(i=(a-1);i>=0;i--)
    {
        printf("%d<",x[i]);
    }
    printf("\b\n");
    for(i=0;i    {
        printf("%d>",x[i]);
    }
    printf("\b ");
    //输出
    return 0;
}

回答2:

#include
int main()
{
int a[20];
int i,j,temp;
int *p=&a[0];
int *d;
int n;
printf("请输入数组长度");
scanf("%d",&n);
for(i=0;i {
printf("请输入这个数组\n");
scanf("%d",p++);//<=================

}
for(p=a;p {
for(d=p+1;d {
if(*p>*d)
{
temp=*p;
*p=*d;
*d=temp;
}
}
}
p=a;
for(p;p {
printf("%d\n",*p);

}
return 0;
}