使用用户输入初始化数组
initialise an array with user input
我正在使用 Visual Studio 2013,c++,控制台应用程序。很长一段时间以来,我一直在为一个问题而苦苦挣扎。我想知道是否有一种方法可以使用用户的输入来初始化数组,例如:
我有一个数组:int arr[] = { 3, 7, 5, 9, 1};
。因此,我希望初始化值成为用户输入。
有什么办法吗?我们将不胜感激所有帮助和评论。
这是我的代码:
cout << "Enter the number of array elements: ";
cin >> 元素;
cout << "Enter the difference value: ";
cin >> difference;
cout << "Enter the sequence of elements: ";
vector<int> arr(elements);
for (int i = 0; i < elements; i++)
{
cin >> arr[i];
}
//the following needs to have an array
//in their respective functions.
sorter(arr[], elements);
elementsDifference(arr[], elements, difference);
此程序必须遍历数组并找到具有给定差异的对。
怎么样
int arr[10] , i;
for ( i = 0 ; i < 10 ; i++ )
std::cin >> a[i];
这个简单的代码片段将从用户那里获取 10 个输入并将它们存储在数组中。
如果你想改变输入的数量,你可以只改变for循环中的条件(同时确保你的数组有足够的大小来存储所有的值)。
更新
你可以这样试试
int size;
cin >> size;
int a[size],i;
for ( i = 0 ; i < size ; i++ )
cin >> a[i];
for ( i = 0 ; i < size ; i++ )
cout << a[i] << endl;
通常,人们只会将数组的大小设置得非常大(例如 a[100000]
左右),然后接受该大小,并使用类似于我上面给出的代码来填充数组。
但更好的方法是使用 vector
。您应该了解如何使用 vector
如果在 C++ 中需要变长数组,应该使用 std::vector
:
std::cout << "Enter the number of elements: ";
int n;
std::cin >> n;
std::vector<int> ints;
ints.reserve(n);
for (int i = 0; i < n; ++i)
{
std::cout << "Enter element #" << i + 1 << ": ";
int element;
std::cin >> element;
ints.push_back(element);
}
#include
int main()
{
char ch;
std::cout << "Enter the size of the array\n";
std::cin >> ch;
std::cout<<"Enter the numbers you want in the array\n";
switch (ch) {
case '1': { int arr[1];
int i;
for (i = 0; i < 1; i++)
std::cin >> arr[i];
for (i = 0;i < 1;++i)
std::cout << " " << arr[i];break;
}
case '2': { int arr[2];
int i;
for (i = 0; i < 2; i++)
std::cin >> arr[i];
for (i = 0;i < 2;++i)
std::cout << " " << arr[i];break;
}
case '3': { int arr[3];
int i;
for (i = 0; i < 3; i++)
std::cin >> arr[i];
for (i = 0;i < 3;++i)
std::cout << " " << arr[i];break;
}
case '4': { int arr[4];
int i;
for (i = 0; i < 4; i++)
std::cin >> arr[i];
for (i = 0;i < 4;++i)
std::cout << " " << arr[i];break;
}
}
}// 等...
我正在使用 Visual Studio 2013,c++,控制台应用程序。很长一段时间以来,我一直在为一个问题而苦苦挣扎。我想知道是否有一种方法可以使用用户的输入来初始化数组,例如:
我有一个数组:int arr[] = { 3, 7, 5, 9, 1};
。因此,我希望初始化值成为用户输入。
有什么办法吗?我们将不胜感激所有帮助和评论。
这是我的代码: cout << "Enter the number of array elements: "; cin >> 元素;
cout << "Enter the difference value: ";
cin >> difference;
cout << "Enter the sequence of elements: ";
vector<int> arr(elements);
for (int i = 0; i < elements; i++)
{
cin >> arr[i];
}
//the following needs to have an array
//in their respective functions.
sorter(arr[], elements);
elementsDifference(arr[], elements, difference);
此程序必须遍历数组并找到具有给定差异的对。
怎么样
int arr[10] , i;
for ( i = 0 ; i < 10 ; i++ )
std::cin >> a[i];
这个简单的代码片段将从用户那里获取 10 个输入并将它们存储在数组中。
如果你想改变输入的数量,你可以只改变for循环中的条件(同时确保你的数组有足够的大小来存储所有的值)。
更新
你可以这样试试
int size;
cin >> size;
int a[size],i;
for ( i = 0 ; i < size ; i++ )
cin >> a[i];
for ( i = 0 ; i < size ; i++ )
cout << a[i] << endl;
通常,人们只会将数组的大小设置得非常大(例如 a[100000]
左右),然后接受该大小,并使用类似于我上面给出的代码来填充数组。
但更好的方法是使用 vector
。您应该了解如何使用 vector
如果在 C++ 中需要变长数组,应该使用 std::vector
:
std::cout << "Enter the number of elements: ";
int n;
std::cin >> n;
std::vector<int> ints;
ints.reserve(n);
for (int i = 0; i < n; ++i)
{
std::cout << "Enter element #" << i + 1 << ": ";
int element;
std::cin >> element;
ints.push_back(element);
}
#include
int main() {
char ch;
std::cout << "Enter the size of the array\n";
std::cin >> ch;
std::cout<<"Enter the numbers you want in the array\n";
switch (ch) {
case '1': { int arr[1];
int i;
for (i = 0; i < 1; i++)
std::cin >> arr[i];
for (i = 0;i < 1;++i)
std::cout << " " << arr[i];break;
}
case '2': { int arr[2];
int i;
for (i = 0; i < 2; i++)
std::cin >> arr[i];
for (i = 0;i < 2;++i)
std::cout << " " << arr[i];break;
}
case '3': { int arr[3];
int i;
for (i = 0; i < 3; i++)
std::cin >> arr[i];
for (i = 0;i < 3;++i)
std::cout << " " << arr[i];break;
}
case '4': { int arr[4];
int i;
for (i = 0; i < 4; i++)
std::cin >> arr[i];
for (i = 0;i < 4;++i)
std::cout << " " << arr[i];break;
}
}
}// 等...