<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## bsearch ## 二元搜索 ### 相關函數 ### qsort ### 表頭文件 ### ``` #include<stdlib.h> ``` ### 定義函數 ### ``` void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)); ``` ### 函數說明 ### bsearch()利用二元搜索從排序好的數組中查找數據。參數key指向欲查找的關鍵數據,參數base指向要被搜索的數組開頭地址,參數nmemb 代表數組中的元素數量,每一元素的大小則由參數size決定,最后一項參數compar 為一函數指針,這個函數用來判斷兩個元素之間的大小關系,若傳給compar 的第一個參數所指的元素數據大于第二個參數所指的元素數據則必須回傳大于0 的值,兩個元素數據相等則回傳0。 ### 附加說明 ### 找到關鍵數據則返回找到的地址,如果在數組中找不到關鍵數據則返回NULL。 ### 范例 ### ``` #include<stdio.h> #include<stdlib.h> #define NMEMB 5 #define SIZE 10 int compar(const void *a,const void *b) { return (strcmp((char *)a,(char *)b)); } main() { char data[50][size]={“linux”,”freebsd”,”solaris”,”sunos”,”windows”}; char key[80],*base ,*offset; int i, nmemb=NMEMB,size=SIZE; while(1){ printf(“>”); fgets(key,sizeof(key),stdin); key[strlen(key)-1]=’\0’; if(!strcmp(key,”exit”))break; if(!strcmp(key,”list”)){ for(i=0;i<nmemb;i++) printf(“%s\n”,data[i]); continue; } base = data[0]; qsort(base,nmemb,size,compar); offset = (char *) bsearch(key,base,nmemb,size,compar); if( offset = =NULL){ printf(“%s not found!\n”,key); strcpy(data[nmemb++],key); printf(“Add %s to data array\n”,key); }else{ printf(“found: %s \n”,offset); } } } ``` ### 執行 ### ``` >hello /*輸入hello字符串*/ hello not found! /*找不到hello 字符串*/ add hello to data array /*將hello字符串加入*/ >.list /*列出所有數據*/ freebsd linux solaris sunos windows hello >hello found: hello ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看