在c中使用数组的麻烦

时间:2015-03-15 15:58:00

标签: c

所以我目前正在进行编程,我正在尝试编写此代码,但我遇到了数组问题。我已经在网上阅读了很多文章,似乎这段代码应该可行,但由于某些原因,当我在我的函数之间传递数组时会出现错误。忽略中间的注释部分,这是我在主函数内部工作的部分。对于这个赋值,我需要它在我下面定义的函数中工作。我只想在一个函数中初始化我的数组,然后在另一个函数中打印出来。 谢谢!

这是它显示的错误 prelab7.c:32:警告:传递'print_array'的参数1使得整数指针没有强制转换 prelab7.c:7:注意:期望'int *'但参数类型为'int'

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

int errorcheck(int );
void intializearrary(int[], int);
void print_array(int [], int);

int main()
{
    int maxsize,i;
    int n[maxsize];

    printf("\nEnter the size of the input: ");
    scanf("%d", &maxsize);

    while (errorcheck (maxsize))
    {
        printf("\nInvalid input enter the size of the input again");
        scanf("%d", &maxsize);
    }

/*  srand(time(NULL));

    for (i = 0; i < maxsize; i++)
    {
    n[i] =  generaterandomnumber();
    printf("\nn[%d]=%d", i, n[i]);
    }
*/

    print_array( n[i], maxsize);

return 0;
}

int errorcheck (int maxsize)
{
    if (maxsize < 0 || maxsize > 100)
        return 1;
    else
        return 0;
}

void initializearrary( int n[],int maxsize )
    {
        int i;

        srand(time(NULL));

        for (i = 0; i < maxsize; i++)
        {
            n[i] = rand()%10;
        }
    }

void print_array(int n[], int maxsize)
{
    int i; //counter
    printf("\nInput Array\n");
    for (i = 0; i < maxsize; i++)
    {
{
   printf("\t%d", n[i]);
    }
}

/*int generaterandomnumber()
{
    return rand()%10;
}*/

1 个答案:

答案 0 :(得分:1)

移动

int n[maxsize];

while循环后更改

print_array( n[i], maxsize);

print_array( n, maxsize);

完成前者,以便在构建VLA之前初始化maxsize 后者完成是因为print_array期望int*作为第一个参数,但是您传递了n[i]类型为int的无效参数。