C语言问题,没办法了,拜托!

来源:百度知道 编辑:UC知道 时间:2024/09/23 10:49:22
问题:输入n个整数排序输出。要求将排序单独写成一个函数,n个整数在主函数中输入,排序结果在主函数中输出,用指针实现。

我写了一个,但是不知道哪里错了。没有结果。请各位大虾帮忙改一下。
拜托了。
#include<stdio.h>
range(int a,int n)
{ int *p1,*p2,t;
for(p1=a;p1<a+n-1;p1++)
for(p2=p1+1;p2<a+n;p2++);
if(p1>p2)
{t=*p1;*p1=*p2;*p2=t;}
}

main()
{ int a[100],n,i,*p1;
printf("input n:");
scanf("&d",&n);
printf("input numbers:");
for(i=0,p1=a;i<n;i++,p1++)
scanf("%d",p1);
range(a,n);
for(i=0,p1=a;i<n;p1++,i++)
printf("%d",*p1);
}
wscsm你的回答运行之后还是按原来的顺序输出了。
西门小爱 你的输入输出函数我没有学过,不懂。运行编译之后也显示错误。

还有没有人回答阿!!!!!

#include<stdio.h>

int *range(int a[],int n)
{
int *p1,t;
int i,j;
p1=a;

for(i=n-1;i>0;i--)
{
for(j=0;j<i;j++)
{
if(*(p1+j)>*(p1+1+j))
{
t=*(p1+j);*(p1+j)=*(p1+1+j);*(p1+1+j)=t;
}
}
}
return a;
}

int main()
{ int a[100],n,i,*p1;
printf("input n:");
scanf("%d",&n);
printf("input numbers:");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
p1=range(a,n);
for(i=0;i<n;i++)
printf("%d ",*(p1+i));
return 0;
}

#include<stdio.h>
range(int a[],int n)
{ int *p1,*p2,t;
for(p1=a;p1<a+n-1;p1++)
for(p2=p1+1;p2<a+n;p2++);
if(p1>p2)
{t=*p1;*p1=*p2;*p2=t;}
}

main()
{ int a[100],n,i,*p1;
printf("input n:");
scanf("%d",&n);