用结构体,
struct
{
int pos; /*标记数的位置*/
int num;
};
这样才好,排序后也可以从pos变量中得出是数组的哪个位置。
给个程序吧!学习中!
奋斗改变一切!!
呵呵,还挺及时,
我刚才看见了,刚编好,
#include "stdio.h"
#include "conio.h"
#include "time.h"
#define N 10
typedef struct
{
int pos;
int num;
}code;
main()
{
int i,j,search,front,rear,mid,s=0;
code array[N];
srand((unsigned)time(NULL));
for(i=0;i<N;i++)
{
array[i].pos=i+1;
array[i].num=rand()%100;
}
for(i=0;i<10;i++)
printf("%3d",array[i].num);
for(i=0;i<N;i++)
for(j=i;j<N;j++)
{
if(array[i].num>array[j].num)
{
array[i].num+=array[j].num;
array[j].num=array[i].num-array[j].num;
array[i].num=array[i].num-array[j].num;
}
}
printf("\n请输入您要查找的数:");
scanf("%d",&search);
for(i=0;i<10;i++)
if(search!=array[i].num)
s++;
if(s==10)
{
printf("没有找到!");
getch();
exit(0);
}
front=0;
rear=9;
do{
mid=(front+rear)/2;
if(array[mid].num<search)
front=mid;
if(array[mid].num>search)
rear=mid;
}
while(array[mid].num!=search);
printf("你要查找的数的位置在第%d位。",array[mid].pos);
getch();
}