查找1C语言
‘壹’ c语言中怎样实现查找功能
可以用结构体 把一个人的信息定义成结构体的变量 输入姓名后在结构体数组查找 匹配时输出对应的所有信息
很好实现的
‘贰’ C语言,在一个序列(下标从1开始)中查找一个给定的值,输出第一次出现的位置
第一种方法:strstr函数,你先把派神数字转换成字符然后在数组字符字符数消里调用strstr函数薯羡知。
第二种:写个while循环一一比较
‘叁’ C语言查找的用法
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#defineN20
voidSort(inta[],intn){
inti,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;
}
}
}
intFind(inta[],intn,intx){
intlow=0,high=n-1,mid;
while(low<=high){
mid=(low+high)/2;
if(x==a[mid])returnmid;
elseif(x>a[mid])low=mid+1;
elsehigh=mid-1;
}
return-1;
}
voidShow(inta[],intn){
inti;
for(i=0;i<n;++i){
printf("%d",a[i]);
}
printf(" ");
}
intmain(){
inta[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。 ",a[res],res);
elseprintf("数列中没有找到数值%d。 ",x);
return0;
}
‘肆’ C语言查找一个字符在字符串1中第一次出现的字符位置
//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
#include"string.h"
intmain(void){
charstr1[]="";//定义一个试验用字符串
charch,*p;
while(1){
printf("Inputacharactertofind(#end)... ch=");
if(scanf("%c",&ch),ch=='#')//输入要查找的字符,若为#则结束
break;
if(p=strchr(str1,ch))//查找输入的字符
printf("'%c'firstappearedatsubscript%d ",ch,p-str1);//换算成下标输出
elseprintf("Nofind'%c'... ",ch);//提示没有找到
}
return0;
}
(4)查找1C语言扩展阅读:
注意事项
利用char *strchr(const char *str, int c) 函数返回的指针,判断字符c所在的位置。
找到第一个位置之后,从该位置的下一个字符起找。
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "this is a sample string";
char *pch;
printf("looking for 's' character in "%s" ",str);
pch = strchr(str,'s');
printf("str address = %p ",str);
printf("pch address = %p ",pch);
while(pch != NULL ){
printf("found at %d ",pch-str);
pch = strchr(pch+1,'s');
}
return 0;
}
‘伍’ c语言排序和查找
1)利用readData()函数从data1.txt中读入不同规模的数据存入数组,
编写基于数组的顺序查找算法,测试数据量为1万、5万、10万、20万、
30万、40万和50万时的数据查询时间。
算法代码如下:
1 int seqsearch(int a[],int n,int key)
2 {
3 int k=n-1;
4 while(k>=0&&a[k]!=key)
5 k--;
6 return (k);
7 }
2)利用readData()函数从data2.txt中读入不同规模的有序数据存入数组,
编写基于数组的二分查找算法,测试数据量为1万、5万、10万、20万、30万、
40万和50万时的数据查询时间。
算法代码如下:
1 int binSearch(int a[],int n,int key)
2 {
3 int low=0;
4 int high=n-1;
5 int mid;
6 while(low<=high)
7 {
8 mid=(low+high)/2;
9 if(a[mid]==key) return mid;
10 if(a[mid]>key)
11 high=mid-1;
12 else
13 low=mid+1;
14 }
15 return -1;
16 }
3)请设计冒泡排序算法函数void bubbleSort(int a[],int n),对a[1]..a[n]进行升序排序。
并测试在不同数据规模下的排序效率。
算法代码如下:
1 void bubbleSort(int a[],int n)
2 {
3 int i=1,j,flag=1;
4 while(i<=n-1&&flag)
5 {
6 flag=0;
7 for(j=1;j<=n-1-i;j++)
8 if(a[j+1]<a[j])
9 {
10 a[0]=a[j];
11 a[j]=a[j+1];
12 a[j+1]=a[0];
13 flag=1;
14 }
15 i++;
16 }
17 }
‘陆’ 在一个数组中查找一个数,用C语言怎么写代码
#include<卜激stdio.h>
intmain(void)
{
inti,j,k=0,sz[10]={5,75,89,428,576,5986,7543,8524,9805,1057};
printf("请输入要唯让查找指弊局的数:");
scanf("%d",&j);
for(i=0;i<10;i++)
if(sz[i]==j)
{
printf("sz[%d]=%d ",i,sz[i]);
k++;
}
if(!k)
printf("数组中没有您要查找的数。 ");
return0;
}
‘柒’ c语言 最快的查找方式
1、最快的查找方式是:二分法查找。
2、查找的线性表分:无序线性表、有序线性表、分块有序线性表。
3、对无序线性表只能采用顺序查找,顺序查找的平均比较次数为(n+1)/2
4、对有序线性表可以采用二分查找,二分查找的比较次数为log2n
5、对分块有序线性表可以采用分块法查找。
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。