这个程序该如何编写,求解!!!谢谢
编写程序、随机数出m个数,从键盘任意输入一个数n,若n在这m个数中,请用折半查找方法将其找出,若不在,请将其插入,使插入后的m个数也从小到大排列。要求 m,n,均由用户从键盘输入。
程序代码:
#include <stdio.h>
#include <time.h>
int main (void) {
srand((unsigned)time(NULL));
int m,n,i,j,temp;
printf ("Enter number of random array:");
scanf("%i",&m);
int a[m];
printf ("Enter number of you want search:");
scanf("%i",&n);
for(i=0;i<m;i++) {
a[i]=rand()%100;
}
//Sort ...
for(i=0;i<m-1;i++) {
for(j=i+1;j<m;j++) {
if(a[i]>a[j]) {
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
//Print ...
for(i=0;i<m;i++) {
printf ("%i ",a[i]);
}
printf ("\n");
//Search ...
for(i=0;i<m;i++) {
if(n>a[i]&&n<a[i+1]) {
for(j=m-1;j>=i+1;j--) {
a[j+1]=a[j];
}
a[i+1]=n;
break;
}
if(n==a[i]) {
printf ("Found it!\n");
break;
}
if(n<a[0]) {
for(j=m-1;j>=0;j--) {
a[j+1]=a[j];
}
a[0]=n;
m++;
break;
}
if(n>a[m-1]) {
a[m]=n;
m++;
break;
}
}
//Print
for(i=0;i<m;i++) {
printf ("%i ",a[i]);
}
printf ("\n");
return 0;
}










楼上牛人!