c语言快速查找函数 c语言中查找指定字符

求c语言大神 题目:编写查找函数search(),实现如下功能。

C代码和运行结果如下:

成都创新互联公司成都企业网站建设服务,提供做网站、成都网站设计网站开发,网站定制,建网站,网站搭建,网站设计,响应式网站开发,网页设计师打造企业风格网站,提供周到的售前咨询和贴心的售后服务。欢迎咨询做网站需要多少钱:13518219792

输入5,成功输出了其在给定数组中的下标为4,结果正确,望采纳~

附源码:

#include stdio.h

int search(int a[], int n, int x) { // 返回数组a[]中x的下标

int i;

for (i = 0; i n; i++) {

  if (a[i] == x)

      return i;

}

return -1; // 数组中没有x则返回-1

}

int main() {

int x, a[10] = {7,9,3,4,5,2,1,6,10,8};

scanf("%d", x); // 用户输入数x

printf("%d ", search(a, 10, x)); // 输出x在数组中的下标

return 0;

}

C语言查找函数

首先,指针默认只有一个地址的长度的空间,存不了那么多的字符。

其次,传值和传地址一塌糊涂,完全就是乱写么。

scanf的第二个参数是地址,如果本身不是指针则需要取址符。

我给你重写了算了

#includestdio.h

int Retrieve(int array[],int length,int x);/*形参x直接传值就可以了*/

int main()

{

int *a,x;

int length,i;

scanf("%d",length);

a = (int)malloc(sizeof(int)*length); /*申请一个内存空间用来存放数据,或者直接用一个大数组也可以*/

C语言查找的用法

#include stdio.h

#include stdlib.h

#include time.h

#define N 20

void Sort(int a[],int n)  {

int i,j,k,t;

for(i = 0; i  n - 1; ++i) {

k = i;

for(j = i + 1; j  n; ++j) {

if(a[k]  a[j]) k = j;

}

if(i != k) {

t = a[k];

a[k] = a[i];

a[i] = t;

}

}

}

int Find(int a[],int n,int x) {

int low = 0,high = n - 1,mid;

while(low = high) {

mid = (low + high)/2;

if(x == a[mid]) return mid;

else if(x  a[mid]) low = mid + 1;

else high = mid - 1;

}

return -1;

}

void Show(int a[],int n) {

int i;

for(i = 0; i  n; ++i) {

printf("%d ",a[i]);

}

printf("\n");

}

int main() {

int a[20],i,x,res;

srand((unsigned)time(NULL));

for(i = 0; i  N; ++i) 

a[i] = rand()%N; // 每个数都在1 -- 100之间 

Show(a,N);

Sort(a,N);

Show(a,N);

x = rand()%100 + 1;

res = Find(a,N,x);

if(res = 0) printf("数值%d的下标为%d。\n",a[res],res);

else printf("数列中没有找到数值%d。\n",x);

return 0;

}


文章标题:c语言快速查找函数 c语言中查找指定字符
URL分享:http://scyanting.com/article/doihpss.html