C语言[指针作为函数参数,指针访问数组元素]编写函数可以对任意个整型元素的数组排序,用指针实现 10
2个回答
展开全部
看看我这个,自动生成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;
}
#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,骗个访问量啊,呵呵
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |