首页 > 解决方案 > 如何搜索数组中的数字?

问题描述

  1. 我必须获取用户输入并在数组中搜索用户输入
  2. 如果有与用户输入完全匹配的数字,那么我必须显示“您输入的数字在数组中”
  3. 如果数组中没有匹配的数字,那么我需要显示“您输入的数字不在数组中”

但目前我遇到了错误的输出,我仔细检查了用户输入是否在数组中,但结果显示为“没有数字匹配”。

我怎么解决这个问题?

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>

    void arrayresult(int arraylength[], int &input_num)
    {   
        for (int i = 0; i < 10; i++)
        {
            if (arraylength[i] == input_num)
            {
                printf("The number you entered is in the array");
                break;
            }

            else
            {
                printf("The number you entered is not in the array");
                break;
            }
        }
    }

    int main(void)
    {
        int input_num;
        int arrayindex;
        int arraylength[10];
        int i = 0;

        srand(time(NULL));

        for (i = 0; i < 10; i++)
        {
            arrayindex += 1;
            arraylength[i] = rand() % (99 + 1 - 11) + 11;
            printf("A[%d]: %d ", arrayindex, arraylength[i]);
        }


        printf("\n");
        printf("Enter the number you want to search: ");
        scanf("%d", &input_num);

        arrayresult(arraylength, input_num);

        return 0;
    }

标签: c

解决方案


您签入数组的逻辑是错误的。尝试这个

void arrayresult(int arraylength[], int input_num) {  
    bool isFound = false;

   // iterate over till you found the  number or reaches end of array
    for (int i = 0; i < 10; i++){
        if (arraylength[i] == input_num){
            isFound = true;
            break;
        }
     }

     if(isFound == true) {
         printf("The number you entered is in the array");
      }else{
            printf("The number you entered is not in the array");
        }

}

推荐阅读