随机产生 N 个数,按升序排序,然后在其

随机产生 N 个数,按升序排序,然后在其中查找数据 k,若找到,显示查找
成功的信息,并将该数据删除;若没有找到,则将数据 k 插入到这些数中,插入
操作后数据仍然有序。

#include "stdio.h"

#include<stdlib.h>

//输入
void input(int a[10]){
	int i;
    for(i=0;i<10;i++)
    	a[i] = rand();
}
//冒泡排序
void choose(int a[10]){
	int i,j,temp;
    for(i=1;i<10;i++)
    {
    	for(j=9;j>=i;j--)
    	{
    		if(a[j]>a[j-1]){
    			temp=a[j];
    			a[j]=a[j-1];
    			a[j-1]=temp;
    		}
    	}	
    }	
}
//输出
void output(int a[10]){
	int i;
    for(i=0;i<10;i++)
    	printf("%d\t",a[i]);	
}
void main()
{
    
    int a[10];
    //输入
    input(a);
    //冒泡排序
    choose(a);
    //输出
    output(a);
}

 

#include "stdio.h"
#include <stdlib.h>

void sort(int *a,int n){
	int i,j,t;
    for(i=1;i<n-1;i++)
    {
    	for(j=0;j<n-i-1;j++)
    	{
    		if(a[j]>a[j+1])
        {
    			t=a[j];
    			a[j]=a[j+1];
    			a[j+1]=t;
    		}
    	}	
    }	
}
void find(int *a,int &n,int x)
{
    int i,j,p=-1;
    for(i=0;i<n;i++)
    {
        if(a[i] == x)
        {
            printf("数组中找到%d",x);
            for(j=i+1;j<n;j++)
                a[j] = a[j+1];
            n--;
            return;
        }
        if(p==-1 && a[i] > x)
            p=i;
    }
    if(p==-1)
        a[n] = x;
    else
    {
        for(i=n;i>p;i--)
            a[i] = a[i-1];
        a[p] = x;
    }
    n++;
}

void main()
{
    int a[50] = {0};
    int i,n,k;
    scanf("%d",&n);
    for(i=0;i<n;i++)
        a[i] = rand()%99+1;
    //冒泡排序
    sort(a,n);
    scanf("%d",&k);
    find(a,n,x);
    for(i=0;i<n;i++)
        printf("%d ",a[i]);
}