生成一個一維陣列,有10個元素,都用隨機數填充,用指標輪詢的辦法實現函式查詢一個數是否存在。
阿新 • • 發佈:2019-02-10
題目:生成一個一維陣列,有10個元素,都用隨機數填充,用指標輪詢的辦法實現函式查詢一個數是否存在,具體實現程式碼如下:
- #include <stdlib.h>
- #include <stdio.h>
- #include <time.h>
- int find(int * pInput, int nLen, int nKey, int * pOut)
- {
- if (!pInput)
- {
- return 0;
- }
- if (!pOut)
- {
- return 0;
-
}
- int * pCurPos = pInput;
- int * pEndPos = pInput + nLen;
- *pOut = 0;
- while (pCurPos < pEndPos)
- {
- if (*pCurPos == nKey)
- {
- *pOut = 1;
- break;
- }
- pCurPos++;
- }
- return 1;
- }
- int main()
- {
-
int
- if (!p)
- {
- printf("記憶體分配失敗.\n");
- return 0;
- }
- int i = 0;
- srand(time(NULL));
- for (i = 0; i < 10; i++)
- {
- p[i] = rand() % 10;
- }
- printf("陣列元素:\n");
- for (i = 0; i < 10; i++)
-
{
- printf("%d ", p[i]);
- }
- printf("\n");
- int nTemp = 0;
- int nFind = 0;
- printf("請輸人要查詢的資料:\n");
- scanf("%d", &nTemp);
- if (find(p, 10, nTemp, &nFind) == 0)
- {
- printf("查詢失敗.\n");
- }
- else
- {
- if (nFind == 0)
- {
- printf("未找到元素:%d\n", nTemp);
- }
- else
- {
- printf("已經找到元素:%d\n", nTemp);
- }
- }
- if (p)
- {
- free(p);
- }
- system("pause");
- return 0;
- }
圖1 執行效果