将元素存储到其他函数的数组中

时间:2017-03-12 11:12:08

标签: c

我正在尝试实现函数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);
}

1 个答案:

答案 0 :(得分:2)

你怎么知道它们没有被存储在阵列中 - 是不是因为它们没有被打印出来?

那是因为你的printarray函数中存在拼写错误 - 删除该行末尾的分号:

for(i=0;i<num;i++);

目前正在发生的事情是循环什么都不做。完成后,i将包含值num。然后它将尝试打印调用Undefined Behavior的数组索引。

哦,并将scanf的结果检查为@Olaf said in his comment