|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 划句顾 于 2021-6-12 13:54 编辑
- /*****************************************************************************************************************
- @time : 2021/6/11
- @author:LaoGu
- @fuction:从键盘上输入任意10个数,将其按从小到大顺序排列;再输入一个数,将该数插入到数列中,不改变数列的排序规律。
- *****************************************************************************************************************/
- #include<stdio.h>
- #define N 10
- int main()
- {
- void sort(int *b,int n); //声明排序函数
- void insert(int l,int *a,int n);//声明插入函数
- int a[20],*p=a,x,l;
- printf("Please input 10 numbers:");
- for(x=0;x<10;x++)
- {
- scanf("%d",p++);
- }
- p = a;
- printf("Output a sorted array:");
- for(x=0;x<10;x++)
- {
- printf("%d ",*p);
- p++;
-
- }
- p = a;
- printf("\n");
- sort(p,N); //调用函数
- printf("Output a sorted array:");
- for(p = a,x=0;x<10;x++)
- {
- printf("%d ",*p);
- p++;
-
- }
- printf("\n");
- //插入一个新的数字
- printf("Please enter one new number:");
- scanf("%d",&l);
- p = a;
- insert(l,p,N);
- printf("Output a new sorted array :");
- for(p = a,x=0;x<11;x++)
- {
- printf("%d ",*p);
- p++;
-
- }
- printf("\n");
- return 0;
- }
- //排序函数
- void sort(int *b,int n)
- {
- int i,j,k,t;
- for(i=0;i<n-1;i++)
- {
- k = i;
- for(j=i+1;j<n;j++)
- {
- if(*(b+j)<*(b+k))
- {
- k = j;
- }
- if(k != i)
- {
- t = *(b+k);
- *(b+k)=*(b+i);
- *(b+i)=t;
- }
- }
- }
- }
- //插入函数
- void insert(int l,int *a,int n)
- {
- int i,j;
- for(i=0;i<n;i++)
- {
- if(*(a+i)>l)
- break;
- }
- for(j=n-1;j>=i;j--)
- *(a+j+1)=*(a+j);
- *(a+i) = l;
- }
复制代码
|
|