0 / 0 / 0
Регистрация: 04.02.2017
Сообщений: 7
1

Ввести размер массива с клавиатуры

03.03.2017, 10:39. Показов 115749. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я хочу вводить с клавиатуры a , но у меня не получается(
Просит константное, но как это будет константой, если ты сам вводишь?


C++
1
2
3
  const int a;
  cin>>a;
  int A[a][4];
Пожалуйста, Хелп!)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2017, 10:39
Ответы с готовыми решениями:

Ввести размер массива с клавиатуры и передать этот размер в конструктор
Я создал массив объектов. И я хочу ввести размер этого массива с клавиатуры, и передать этот размер...

Ввести с клавиатуры массив, распределить память для его размещения и ввести int значения этого массива
Подскажите пожалуйста. Задача такая : ввести с клавиатуры n элементов массива, распределить память...

Ввести с клавиатуры два массива
Ввести с клавиатуры два массива с одинаковым количеством элементов. Вывести на экран одномерный...

Ввести с клавиатуры размер одномерного массива
Ввести с клавиатуры размер одномерного массива и его элементы. Распечатать массив в строчку. Можно...

9
1174 / 835 / 359
Регистрация: 26.02.2015
Сообщений: 3,743
03.03.2017, 10:49 2
Можно, например, память выделять динамически в подобном случае. Но тогда придётся "следить" за ней самостоятельно, т.е. удалить её после того, как она стала не нужна.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
 
int main() {
 
    size_t size;
 
    std::cout
        << "Please, enter a size of the array: ";
    std::cin
        >> size;
 
    int* array = new int[size];
 
    std::cout
        << "Please, enter "
        << size
        << " values: ";
 
    for (size_t i = 0; i < size; i++) {
 
        std::cin
            >> array[i];
 
    }
 
    delete[] array;
 
    std::system("PAUSE");
    return EXIT_SUCCESS;
 
}
Добавлено через 3 минуты
Но можно воспользоваться уже написанными средствами, например, классом vector. (Почитать можно тут). Всего будет необходимо подключить заголовочный файл класса
C++
1
#include <vector>
При использовании класса vector память будет освобождаться после использования самостоятельно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <vector>
 
int main() {
 
    size_t size;
 
    std::cout
        << "Please, enter a size of the array: ";
    std::cin
        >> size;
 
    std::vector<int> array(size);
 
    std::cout
        << "Please, enter "
        << size
        << " values: ";
 
    for (size_t i = 0; i < size; i++) {
 
        std::cin
            >> array[i];
 
    }
 
    std::system("PAUSE");
    return EXIT_SUCCESS;
 
}
1
5 / 5 / 0
Регистрация: 15.01.2017
Сообщений: 49
03.03.2017, 16:21 3
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
int main(){
    int a;
    cin>>a;
    const int n = a;
    int A[n][4];
        //Пиши свой код тут
}
0
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
03.03.2017, 16:26 4
Claud254, это нестандартное расширение. Работать будет не везде.
0
5 / 5 / 0
Регистрация: 15.01.2017
Сообщений: 49
03.03.2017, 16:28 5
avgoor, А почему?
0
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
03.03.2017, 16:38 6
Claud254, Потому, что размер массива должен быть константой времени компиляции. В gcc есть расширение c++, которое называется variable length array. Оно и позволяет писать такой код. А вообще это должно работать в c, а в c++ - нет.
0
5 / 5 / 0
Регистрация: 15.01.2017
Сообщений: 49
03.03.2017, 16:42 7
avgoor, Понятно
0
0 / 0 / 0
Регистрация: 25.03.2022
Сообщений: 7
25.03.2022, 13:26 8
А зачем удалять её после того, как она стала не нужна.
0
1174 / 835 / 359
Регистрация: 26.02.2015
Сообщений: 3,743
25.03.2022, 13:37 9
Цитата Сообщение от Nurasyl22 Посмотреть сообщение
А зачем удалять её после того, как она стала не нужна.
В подобных учебных задачах это не обязательно. Программа завершится и память будет освобождена операционной системой. Но если принять, например, за правду то, что мы пишем 1С, которая должна работать по несколько дней/недель не закрываясь, то утечка (особенно происходящая где-нибудь в циклах) может стать снежным комом и спустя какое-то время съесть достаточно много памяти.
2
0 / 0 / 0
Регистрация: 25.03.2022
Сообщений: 7
25.03.2022, 13:39 10
спасибо понял
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2022, 13:39
Помогаю со студенческими работами здесь

Как ввести размер матрицы с клавиатуры?
Есть двухмерная матрица нужно задать размер с помощью клавиатуры

Ввести размер квадратной матрицы с клавиатуры
Добрый день. Написала код поиска наименьших элементов в верхнем и нижнем, затем в левом...

Построить эллипс (координаты и размер нужно ввести с клавиатуры)
Наиумнейшие умы в TurboProlog взываю Вас о помощи.. Осталось сдать 2 задачи чтоб остаться без...

Найти произведение элементов массива, элементы массива ввести с клавиатуры
чет вообще который час туплю,хелпайте плз) УКАЗАТЕЛИ И МАССИВЫ 1 Найти произведение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru