我正在尝试实现函数fillarray
来存储数组中的值。但元素没有存储在数组中。
CODE:
#include<stdio.h>
void fillarray(int array[],int num)
{
int i;
printf("\nenter your %d numbers",num);
for(i=0;i<num;i++)
{
scanf("%d",&array[i]);
}
}
void printarray(int array[],int num)
{
int i;
printf("\n\nyour array is : \n");
for(i=0;i<num;i++);
{
printf("%d",array[i]);
}
}
int main()
{
printf("\nhow many numbers??\n");
int num,i;
scanf("%d",&num);
int array[num];
fillarray(array,num);
printarray(array,num);
}
答案 0 :(得分:2)
你怎么知道它们没有被存储在阵列中 - 是不是因为它们没有被打印出来?
那是因为你的printarray
函数中存在拼写错误 - 删除该行末尾的分号:
for(i=0;i<num;i++);
目前正在发生的事情是循环什么都不做。完成后,i
将包含值num
。然后它将尝试打印调用Undefined Behavior的数组索引。
哦,并将scanf
的结果检查为@Olaf said in his comment。