C语言[指针作为函数参数,指针访问数组元素]编写函数可以对任意个整型元素的数组排序,用指针实现 10

 我来答
邹金辰bW8af
2013-01-04 · TA获得超过619个赞
知道小有建树答主
回答量:459
采纳率:0%
帮助的人:313万
展开全部
看看我这个,自动生成N个整数的随机数,并排序,还可以查找,有点乱啊不好意思

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int * getnumbers(int a[],int N)
{int i;srand((unsigned)time(NULL));for(i=0;i<N;i++){ a[i]=rand()%98+1;}return a;}int * bubble(int a[],int n){int i,j;for(i=0;i<n;i++){for(j=n-2;j>=i;j--){if(a[j]>a[j+1])exchange(a+j,a+j+1);}}return a;} int exchange(int *a,int *b){int t;t=*a;*a=*b;*b=t;}void output_array(int a[],int n){int i;for(i=0;i<n;i++){printf("%d ",a[i]);}printf("\n");}int search(int key,int a[],int n)//返回值是数组序号,而不是真正序列 {int left=0,right=n;int mid;int flag=0;while(left<=right){ mid=(left+right)/2;if(key==a[mid]) {return mid;} else if(key>a[mid]) left=mid+1;else if(key<a[mid]) right=mid-1; } return -1;}

int main()
{
int num;printf("----------冒泡排序和折半法演示---------\n"); printf("请输入数组的个数:");
scanf("%d",&num);
int a[num];
getnumbers(a,num);
puts("before");
output_array(a,num);
bubble(a,num);puts("now");
output_array(a,num);
int key;
printf("请输入要找的数字:");
scanf("%d",&key);search(key,a,num);if(search(key,a,num)==-1) printf("呵呵,没找到\n");
else printf("他在第%d的位置",search(key,a,num)+1);
return 0;
}

参考资料: 看我qq空间的552135956,骗个访问量啊,呵呵

慕冬亮
2013-04-09 · TA获得超过180个赞
知道答主
回答量:98
采纳率:0%
帮助的人:44.7万
展开全部
C语言的排序库函数是很好用,如果你是用于编程的话,那个是比较好的选择,它肯定比你写的算法效率要高,如果是作业神马的就当我没有说。
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式