所以我目前正在进行编程,我正在尝试编写此代码,但我遇到了数组问题。我已经在网上阅读了很多文章,似乎这段代码应该可行,但由于某些原因,当我在我的函数之间传递数组时会出现错误。忽略中间的注释部分,这是我在主函数内部工作的部分。对于这个赋值,我需要它在我下面定义的函数中工作。我只想在一个函数中初始化我的数组,然后在另一个函数中打印出来。 谢谢!
这是它显示的错误 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;
}*/
答案 0 :(得分:1)
移动
int n[maxsize];
在while
循环后更改
print_array( n[i], maxsize);
要
print_array( n, maxsize);
完成前者,以便在构建VLA之前初始化maxsize
后者完成是因为print_array
期望int*
作为第一个参数,但是您传递了n[i]
类型为int
的无效参数。