永发信息网

用指针来排序吖吖吖

答案:1  悬赏:0  手机版
解决时间 2021-05-10 06:54

#include"stdio.h"
void main()
{
void sort(int *a[],int n);
int *a[81],i,n;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,n);
for(i=0;i<n;i++)
printf("%d ",a[i]);
}

void sort(int *a[],int n)
{
int i,j,m;
for(j=0;j<n;j++)
for(i=0;i<n-j-1;i++)
if(a[i]>a[i+1])
{
m=*a[i];
*a[i]=*a[i+1];
*a[i+1]=m;
}
}

数据从大到小输入时就不可以了,why?!

最佳答案
你的a数组里的指针就没分配空间,从scanf( "%d", &a[i] )开始就有问题!
用指针给数组排序无非是通过操作指针来完成排序,而不是你所理解的 "给指针排序"

#include"stdio.h"
int main()
{
void sort( int* beg, int* end );

int a[81],i,n;
scanf("%d",&n);

for(i=0;i<n;i++)
scanf("%d", &a[i]);
sort( a, a + n );
for(i=0;i<n;i++)
printf("%d ",a[i]);
}

void sort( int* beg, int* end )
{
int* p, * q, t;
for ( p = beg; p != end; ++p ) {
for ( q = end-1; q != p; --q )
if ( *q < *(q-1) ) {
t = *q;
*q = *(q-1);
*(q-1) = t;
}
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
巴萨中国行,什么时候比赛啊,国安和他比吗?
人灵魂的重量真是21克吗
给我个天龙八部看起最酷男生的网名?
夏普9120和9020功能上有什么区别?
爱上一个人你会怎样做
校园卡开通超级QQ一个月多少钱?
DNF德COF指数问题...
房屋产权共同共有和按份共有有什么区别
个人业绩加油助威口号,表达加油的句子
生化狂潮三好玩吗?
如何制作空间个性背景?
谁可以帮我做个闪光图?
寻阿迪耐克打折店(购秋天运动服和运动裤)
我开了超级QQ预付费如果我没用电脑也没用手机
现在什么游戏最火!不能说TX的
推荐资讯
8月海南旅游的报价
昆明那里有专业滑板买?
大家觉得这QQ炫舞YY一套配的怎么样
VB程序问题《高手进》
求暮光之城二 。新月的高清全集视频
如何查看自己的“游戏人生”?
证件上传方式不正确
月经好了半个多月有点胁为什么
当x=1时px的3次方+qx+1=2009则当x=-1时px的3
怎样做饭快?
数学高手快来..分数可再加
请问QQ好友评价写在里面,其它好友能看出来是
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?