查找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語言,適於編寫系統軟體,三維,二維圖形和動畫,具體應用比如單片機以及嵌入式系統開發。