如何在不输入n的情况下输入数组中的元素? (C )

Input : 5

long long n;
cin>>n;
long long a[n];
for(long long i=0;i<n;i++){
    cin>>a[i];
}

如何在不输入n的情况下输入数组的元素?

这就是我寻找的:

Input : 1,2,3,4,5

cout << a[0]

输出

1

解决方法

C中的标准输入滤波器循环是(cin>> a) – 这将读取,直到没有更多的输入,或其他不好的事情发生:
#include <vector>
#include <iterator>
#include <iostream>
int main() {
  std::vector<int> nums;
  while (std::cin >> a) {
    nums.push_back(a);
  }
  std::copy(nums.begin(),nums.end(),ostream_iterator<int>{cout," "});
}

您还可以使用带有输入迭代器的一个线程 – 读取向量中元素的最短方式:

#include <vector>
#include <iterator>
#include <algorithm>
#include <iostream>

int main() {
  std::vector<int> nums(std::istream_iterator<int>(std::cin),{});
  std::copy(nums.begin(),std::ostream_iterator<int>{std::cout," "});
}

Ideone example here

然而,假设您希望忽略所有这些C的惊人,强烈劝阻IMHO,您可以:

#include <iostream>
int main() {
  const int MAX_SIZE = 100;
  int nums[MAX_SIZE]; 
  int a;
  int i=0;
  while (std::cin >> a) {
    nums[i++] = a;
  }

  // do your output
}

请注意,您将:

>需要猜测MAX_SIZE,
>或者在读取MAX_SIZE以外的元素时手动处理重新分配;

因此:使用std :: vector!

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...