在C中的单独功能中打印阵列

Mik*_*ike 2 c arrays function

我试图通过将它们发送到一个单独的函数来打印四个数组中的所有值.但是,问题是我无法获得函数来打印数组中的所有整数,因为我不确定我可以在for循环中设置条件语句,这对于任何大小的任何数组都是通用的.

此时,该功能仅打印前11个数字.我认为那是因为该数组中的第一个数字是11.

    #include <stdio.h>

    void print_array(int a[]);

    void find_max(int b[]);

    void find_min(int c[]);

    void search(int d[]);

    void SORT(int e[]);

    int main(void)
    {
        int first[11] = {7,7,7,7,7,7,7,7,7,7,7};

        int second[14] = {11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, -1, -2};

        int third[16] = {-2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};

        int fourth[23] = {-3, 4, 33, 22, 9, -100, 2, 56, 57, 55, 2, 90, 2234, 32, 8, 123, 2, 33, 22, 22, 33, -1, -3}; 


        print_array(&second[0]);


        return(0);
    }

    void print_array(int a[])
    {

        int i;
        for(i=0;i<*a;i++)
        {
            printf("%d ",a[i]);

        }
    }

Mik*_*keP 7

将第二个参数传递给函数,该参数获取数组的长度.例如:

print_array(int *array, int length)
{
    for (int i = 0; i < length; i++) { /* whatever */ }
}
Run Code Online (Sandbox Code Playgroud)