<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之旅 廣告
                此實例的要求是在兩個已經擺好順序的數組尋找第一個相同的元素在第一個數組中的指針。 這個實例的思想比較好,如果我來做的話,就是先從第一個數組的第一個元素開始,每次取出一個元素,與第二個數組的每一個元素進行比較,當元素值相等的時候,返回元素的指針。 但是在此實例中,使用了另外一種思想,在我看來降低了程序的時間復雜度。其思想為:由于兩個數組都已經排好順序,則分別從兩個數組的第一個元素開始,比較大小,將較小的元素的數組的位置指向下一個,知道找到相同的元素為止。 下面我程序的實現部分: ~~~ #include <stdio.h> #define NULL 0 /** * 在已知兩個從小到大的有序數組中尋找出現的相同的 * 元素在第一個數組中的指針 * * 思想: * 由于兩個數組是已經拍好順序的,所以可以這樣: * 從兩個數組的第一個元素開始,比較兩個數組的元素 * 較小的元素的數組位置向下移動,知道找到相等的元素 */ /** * @brief search 找到兩個數組中第一個相同的元素的指針 * @param array1 第一個數組 * @param n1 第一個數組的長度 * @param array2 第二個數組 * @param n2 第二個數組的長度 * @return 返回兩個數組第一個相同元素在第一個數組中的指針 */ int search(int *array1,int n1,int *array2,int n2){ int *p1 = array1; int *p2 = array2; while(p1 < array1+n1 && p2 < array2+n2){ if(*p1 < *p2){ printf("*p1 < *p2\n"); p1++; }else if(*p1 > *p2){ printf("*p1 > *p2\n"); p2++; }else{ printf("*p1 = *p2\n"); return p1; } } return NULL; } int main(void) { int n1,n2; //The length of the first and the second array int i; printf("Please enter the length of the first array:\n"); scanf("%d",&n1); int array1[n1]; printf("Please enter the first array:\n"); for(i = 0;i < n1;i++) scanf("%d",&array1[i]); printf("Please enter the length of the second array:\n"); scanf("%d",&n2); int array2[n2]; printf("Please enter the second array:\n"); for(i = 0;i < n1;i++) scanf("%d",&array2[i]); printf("The first array is :\n"); for(i = 0;i < n1;i++) printf("%d\t",array1[i]); printf("\n"); printf("The second array is :\n"); for(i = 0;i < n1;i++) printf("%d\t",array2[i]); printf("\n"); int p = search(array1,n1,array2,n2); if(p) printf("The pointer of the first same element in the first array is:\n%d",p); else printf("not found!!\n"); return 0; } ~~~ 下面是我的程序的運行結果: ![這里寫圖片描述](https://box.kancloud.cn/2016-05-24_5743c0757ac8b.jpg "")
                  <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>

                              哎呀哎呀视频在线观看