读入数组

时间:2016-04-14 07:54:21

标签: c arrays

请帮忙,我需要将一个输入的txt文件读入一个数组并打印出去,不知何故我一直收到错误消息。

#include <stdio.h>

void reading_into_array(int A[]);

#define MAXVALS 100
int
main(int argc, char *argv[]){
    int numbers[100], i;
    reading_into_array(numbers[MAXVALS]);
    for(i = 0; i < 100; i++){
        printf("%d", numbers[i]);
    }
    return 0;
}

/*input information*/

void
reading_into_array(int A[]){
    double inp;
    int n = 0;
    while(scanf("%lf",&inp) == 1){
        A[n++] = inp;
    }
}

2 个答案:

答案 0 :(得分:3)

  • numbers[MAXVALS]超出范围且其类型与函数参数不匹配。请改用numbers
  • 避免使用具有自动存储持续时间的未初始化变量的值,这会调用未定义的行为。像numbers
  • 一样初始化int numbers[100]={0},i;

答案 1 :(得分:0)

调用以数组作为参数的函数时,只需提供数组的名称,例如:数字。 &#34;数字[MAXVALS]&#34;将提供此数组的MAXVALth元素的值。这有两个原因:

  1. 该函数需要一个数组,而不是一个元素
  2. 数组的大小为MAXVAL;它的元素从零到MAXVAL-1计数,因此MAXVALth元素甚至不存在
  3. 如果您想在数组中使用浮点数,请将数组声明为双A [MAXVAL]。

    最后注意:reading_into_array函数应该检查它是否会阻止它将超过MAXVAL的数字放入数组中,否则你可能会损坏内存并使程序崩溃。