线性搜索功能编译但没有输出

Linear Search function compiles but no output

我不明白这段线性搜索代码有什么问题。它编译但在执行时退出没有输出。

turns - no. of test cases.
size  - size of array.
x     - element to be searched.


#include <stdio.h>

int linearSearch(int arr[], int size, int element)
{
    int i = 0;
    for(i=0; i< size; i++)
    {
        if(arr[i] == element)
        {
            return i;
        }
    }
    return 0;
}

int main()
{
    int turns, size;
    scanf("%d", &turns);

    while(turns--)
    {
        scanf("%d", &size);
        int arr[size];

        for(int j=0; j < size; j++)
        {
            scanf("%d", arr[j]);
        }
        int x;
        scanf("%d", &x);
        int k = linearSearch(arr, size, x);
    }

    return 0;

}

您的代码中存在一个主要问题。

首先你需要传递数组元素的地址(&arr[j])。

并且没有显示输出,因为您没有打印出来。

正确的代码是

#include <stdio.h>

int linearSearch(int arr[], int size, int element)
{
    int i = 0;
    for(i=0; i< size; i++)
    {
        if(arr[i] == element)
        {
            return i;
        }
    }
    return 0;
}

int main()
{
    int turns, size;
    scanf("%d", &turns);

    while(turns--)
    {
        scanf("%d", &size);
        int arr[size];

        for(int j=0; j < size; j++)
        {
            scanf("%d", &arr[j]);
        }
        int x;
        scanf("%d", &x);
        int k = linearSearch(arr, size, x);
        printf("%d\n", k);
    }

    return 0;

}