2015-04-02 6 views
1

Я использую Visual Studio 2013, C++, консольное приложение. Некоторое время я боюсь вопроса. Я хочу знать, есть ли способ инициализировать массив, с помощью ввода от пользователя, например:инициализировать массив с пользовательским вводом

У меня есть массив: int arr[] = { 3, 7, 5, 9, 1};. Поэтому я хочу, чтобы инициализированные значения представляли собой пользовательский ввод.

Есть ли способ, я могу это сделать? Вся помощь и комментарии будут оценены.

Это мой код: cout < < "Введите количество элементов массива:"; 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); 

Эта программа должна проходить через массив и находить пары с заданной разницей.

ответ

0

Как насчет

int arr[10] , i; 
for (i = 0 ; i < 10 ; i++) 
    std::cin >> a[i]; 

Этот простой фрагмент кода будет принимать 10 входов от пользователя и хранить их в массиве.

Если вы хотите изменить количество входов, вы можете просто изменить условие в цикле for (также убедитесь, что ваш массив имеет достаточный размер для хранения всех значений).

UPDATE

Вы можете попробовать, как этот

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

+0

Но, на мой вопрос, размер массива зависит от ввода пользователем , например: Введите размер элементов: и затем пользователь вводит количество элементов, как это работает? @Arun A.S –

+0

@PrathamPatel, добавленный код для этого. –

0

Если вам нужен массив переменной длины в 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); 
} 
+0

Я попробовал, но не повезло, вот мой код, это может помочь объяснить, что я на самом деле ищу: –

+0

cout << "Введите количество элементов массива:"; \t cin >> elements; \t cout << "Введите значение разности:"; \t cin >> разница; \t \t cout << "Введите последовательность элементов:"; \t vector arr (элементы); \t \t для (INT I = 0; г <элементы; я ++) { \t \t \t CIN >> обр [I]; // это, где я должен ввести последовательность чисел \t \t \t } \t // следующие потребности иметь массив \t // в своих соответствующих функций. \t сортировщик (arr [], элементы); \t elementsDifference (arr [], элементы, разность); –

+0

Вы можете получить базовый массив из вектора с помощью 'arr.data()' или '& arr [0]' без поддержки C++ 11. Например. 'Сортировщик (arr.data(), elements)'. – emlai

Смежные вопросы