Atlas_Wu
数字的排序直接到网上搜索“C语言冒泡法排序”,网上有图文详解 折半法在数组中查找某一数值,然后返回下标,可以参考我下面的程序。/*核心思想是把输入的数字和数组的中间数做对比,如果x大于数组的中间数,那就改变下标为中间数下标;如果x小于数组的中间数,那就改变上标为中间数下标; 如果x于中间数相等,就返回下标; 如果找不到x,返回-1*/#include<stdio.h>#define M 30int search(int v[],int x);int main() { int x,i,n; int v[M]; v[0]=0; for(i=0;i<M;i++) //这里我按大小顺序给数组赋值,所以我没有排序 { v[i+1]=v[i]+1; } printf("please enter a x\n"); scanf("%d",&x); n=search(v,x); if(n==-1)printf("can not find\n"); else printf("下标是%d\n",n); return 0;}int search(int v[],int x) //这个函数是用折半法在数组中找数字x{ int mid; //中值 int low=0; //下限 int high=M-1; //上限 while(low<=high) { mid=(low+high)/2; if(x>v[mid]) low=mid+1; else if(x<v[mid]) high=mid-1; else return mid; } return -1; }