使用 scanf 在 C 语言中输入动态长度数组



我必须输入一个整数数组。这个数组的长度是在运行时当用户点击某个哨兵键时确定的(可能我会使用 return)

//input path to be analyzed
  int n = 0;
  while(scanf("%d",&input[n])==1){
    //??
  }
}

输入:

3

2 1 3 4 5 (返回)

然后将这些值存储在数组 a 中,如下所示:

[3, 2, 1, 3, 4, 5]

当然,我还需要适当的错误检查。

我确定这是一个基本问题,但我无法解决它。

谢谢!

我认为需要一个while循环,但是我不确定如何使用scanf来终止循环,启动数组并输入值。

您可以按如下方式执行此操作:

int main()
{
    char ch;
    int i=0;
    int input[100000]; //Or dynamically allocate
    while(scanf("%c",&ch) && (ch!='n')){
    if(ch==' ') continue;
    input[i++]=ch - '0';
    printf("%d ",input[(i-1)]);
}
}

相关内容

  • 没有找到相关文章

最新更新