希望哪个高手帮我解决一个C语言程序设计的题,谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/30 09:47:43
编写一个函数,要求这个函数能够在一个有序的数组中间插入用户从键盘键入的一个新的数,要求插入后的数组任然有序,并编写主程序完成对该函数的调用,要求该程序能实现任意个数的插入,任意个由用户通过键盘输入数字确定,每次插入一个数。(提示:首先主程序需要调用排序函数对用户从键盘上键入的数据进行排序,然后再调用插入函数,可以结合动态内存管理函数的使用)

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

int *insert(int *a,int n,int l){
int *b=(int *)calloc(l+1,sizeof(int));
int i;
for(i=0;i<l&&a[i]<=n;i++)
b[i]=a[i];
b[i++]=n;
for(;i<l+1;i++)
b[i]=a[i-1];
free(a);
return b;
}

int main(){
int *a=0,b;
int l=0,i;
char ch[2];
do{
printf("Insert a integer: ");
scanf("%d",&b);
a=insert(a,b,l);
l++;
for(i=0;i<l;i++)
printf("%5d",a[i]);
printf("\n");
printf("Want another one? y/n ");
scanf("%s",ch);
}while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0);
free(a);
return 0;
}

int a[100];
main
{int b;
while()
{sort(a);
scanf("%d",&b);
Insert(*m,*n);
}

int *insert(int *a,int n,int l){
int *b=(int *)calloc(l+