1、首先打开c语言编辑器,写上注释内容。
目前创新互联已为1000多家的企业提供了网站建设、域名、网站空间、网站托管维护、企业网站设计、通道网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
2、然后写上函数的数据类型,默认是int类型。
3、然后写上函数名称,遵循变量名定义的规则。
4、然后写上(),括号里面是激手用旅野于放置参数的,可以选择不放任何参数。
5、然后在里面写上主体内容,在主函数里面调用该函数,直接写上函数的名称+()。
6、最后进行明镇嫌编译运行,就完成了。
通常操作数组的时候,你发送的实参就是数组的首地址;所以直接void类型就可以;但是如果一定要设返回值的话;直接把形参接收的首地址返回就可以了!
你的代码中,有很大的问题;如果是的代码中这样设昌册定要想不出问题,那么那个数组要在堆中分配;即malloc一块地址;
其次,int paixu() 改成int *paixu();
再次;return arr;就可以
如果你的程序需要作为接口给别人的,那么你这个写法显然是不对的;因为别人不知道怎么解析你这个接口返回的地址;知道是数组也不知道数组的元素帆唯个数!
再说你这个冒泡排序;也出问题了态迅培!j不会递增,也就是当执行到里面的循环后就是个死循环!
思路:在数值进行排序时,下标也同时移动。这就要求二者要联动。为此创建一个PAIR结构体,将此二者关联在尺型一起。用库里的快排函数qsort可以省略排序的麻烦,并指定qsort按PAIR中数值搭轮大小为标准排序结构体数陵枝猜组,这样排序结果中的结构体数组下标和值还是保持开始时的对应关系。
#includeSTDIO.H
#includestring.h
#includestdlib.h
#define N 8
typedef struct
{
int cj;//数值
int px;//下标
}PAIR;
//qsort的辅助比较函数
int compare(const void *p, const void *q)
{
PAIR t1= *(PAIR* )p;
PAIR t2= *(PAIR* )q;
return(t1.cjt2.cj);
}
int main()
{
PAIR a[N]={};
int cj[N]={};
int px[N]={};
printf("请输入%d个整数:", N);
for (int i=0;iN;i++)
{
scanf("%d",(a[i].cj));
a[i].px=i+1;
//数组
cj[i] = a[i].cj;
px[i] = a[i].px;
}
qsort((void *)a,N, sizeof(PAIR), compare);
printf("\n排好序的整数为:");
for (i=0;iN;i++)
{
printf("%d ",a[i].cj);
cj[i]=a[i].cj;
}
printf("\n对应原来的下标:");
for (i=0;iN;i++)
{
printf("%d ",a[i].px);
px[i] = a[i].px;
}
putchar('\n');
return 0;
}
你可以再开辟另庆胡外一组
结构体
数组用来保存进行排序前的顺序!你排完后输出仔差完了,念差皮再赋值回去就行了