Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.90/48: Рейтинг темы: голосов - 48, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 11.10.2016
Сообщений: 48
1

Ввод чисел в массив, без заданного размера с клавиатуры

12.10.2016, 20:07. Показов 9627. Ответов 34
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
#include <iostream>
using namespace std;
int main ()
{   
int a[]= {ЗДЕСЬ ДОЛЖНЫ БЫТЬ ВВОДИМЫЕ С КЛАВИАТУРЫ ПО ЦИКЛУ for числа} 
      for ( int i = 0; i < n; i++) {
            cout << "Enter the " << i + 1 << " element" << endl;
            cin >> i;
Необходимо задать массив с клавиатуры размер которого будет варьироваться. Есть ли какие либо пути осуществления. Вектор для решения задачи не рассматривается, ввиду вредности преподавателя.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.10.2016, 20:07
Ответы с готовыми решениями:

Двумерный динамический массив. Ввод размера с клавиатуры
Что я делаю не так? Хочу с клавиатуры вводить размерность двумерного динамического массива,...

Необходимо изобразить эту программу, без получения рандомных чисел, а ввод с клавиатуры чисел N
Вычислить сумму отрицательных элементов последовательности из N произвольных чисел

ввод с клавиатуры в массив без пробела
подскажите пожалуйста, как можно реализовать ввод цифр в массив без пробела?? т.е. мы вводим...

Ввод чисел в массив с клавиатуры
Здравствуйте. Есть условие задачи, нужно в массив вводить числа, а когда вводим цифру 0, обрывается...

34
6992 / 6030 / 2738
Регистрация: 14.04.2014
Сообщений: 25,792
12.10.2016, 20:17 2
Ну используй массив с запасом. 1000 элементов вполне хватит.
0
0 / 0 / 0
Регистрация: 11.10.2016
Сообщений: 48
12.10.2016, 20:18  [ТС] 3
Цитата Сообщение от nmcf Посмотреть сообщение
Ну используй массив с запасом. 1000 элементов вполне хватит.
Нельзя по условию.
0
6992 / 6030 / 2738
Регистрация: 14.04.2014
Сообщений: 25,792
12.10.2016, 20:20 4
А что можно-то? Перевыделять память каждый раз? Ну действуй таким путём.
0
Любитель чаепитий
3587 / 1687 / 519
Регистрация: 24.08.2014
Сообщений: 5,709
Записей в блоге: 1
12.10.2016, 20:21 5
ZeritaGuns, Скажите задание полностью, а то не понятно, из чего нужно исходить.
0
0 / 0 / 0
Регистрация: 11.10.2016
Сообщений: 48
12.10.2016, 20:24  [ТС] 6
Массив не должен иметь какого-либо заданного размера, это раз.
Все числа массива должны задаваться с клавиатуры.
Программа должна посчитать, сколько чисел ввелись с клавиатуры в массив(сделаю сама)
И нужно заставить программу высчитать, есть ли в массиве элемент, являющийся суммой всех остальных.(сделаю сама)
0
273 / 132 / 44
Регистрация: 05.02.2015
Сообщений: 845
12.10.2016, 20:26 7
а что, что в C++ есть динамические массивы все забыли? не вектора а именно динамические массивы с выделением памяти через new, вот они и нужны )
0
0 / 0 / 0
Регистрация: 11.10.2016
Сообщений: 48
12.10.2016, 20:30  [ТС] 8
Программу с ними у меня забраковали. Предлог "Приходите вы в поликлинику на регистрацию, а вам, прежде чем вбить фамилию, просят посчитать количество букв в ней. А что если у вас их там миллиард?"

Добавлено через 2 минуты
А как впихнуть вводимые числа в фигурные скобки не подскажете?
0
Любитель чаепитий
3587 / 1687 / 519
Регистрация: 24.08.2014
Сообщений: 5,709
Записей в блоге: 1
12.10.2016, 20:32 9
Цитата Сообщение от minore Посмотреть сообщение
что в C++ есть динамические массивы
Нету.
0
273 / 132 / 44
Регистрация: 05.02.2015
Сообщений: 845
12.10.2016, 20:37 10
понимаете, фигурные скобки предназначены только для случаев, когда длина массива вам известна, например:
C++
1
int a[] ={1;2;3};
если вводить должен пользователь, то фигурных скобок у вас ввобще не будет. я бы на вашем месте выкрутился следующим образом:
C++
1
2
3
4
5
6
int n;
cout << "введите очередное число ";
cin >> n;
// записываем число в текстовый файл
// заодно считаем количество введенных чисел (count = count + 1)
// когда пользователь закончил ввод, мы знаем сколько чисел было, выделяем под них память оператор new и считываем из файла.
0
0 / 0 / 0
Регистрация: 11.10.2016
Сообщений: 48
12.10.2016, 20:41  [ТС] 11
Тоже нельзя...
Работа сугубо внутри программы. Я уже так пыталась сделать.
Да-да, это то самое состояние когда ты уже третью неделю в отчаянии бьешься головой о стенку
0
Любитель чаепитий
3587 / 1687 / 519
Регистрация: 24.08.2014
Сообщений: 5,709
Записей в блоге: 1
12.10.2016, 20:42 12
Цитата Сообщение от ZeritaGuns Посмотреть сообщение
Массив не должен иметь какого-либо заданного размера, это раз.
Все числа массива должны задаваться с клавиатуры.
А как тогда узнать, когда остановиться в вводе?
0
273 / 132 / 44
Регистрация: 05.02.2015
Сообщений: 845
12.10.2016, 20:43 13
да вы что, а как же http://cppstudio.com/post/432/
а зачем нужны слова new (для выделения памяти) b delete для очистки? не вводите людей в заблуждения )
0
0 / 0 / 0
Регистрация: 11.10.2016
Сообщений: 48
12.10.2016, 20:46  [ТС] 14
Есть функция, которую я сюда не включила, видимо забыла..
C++
1
2
3
4
5
6
7
cout << "You entered mass continue__ Yes - Y__No-N" << endl;
            char q;
            cin >> q;
            if (q='N')
                n=i+1;
            cout << n << endl;
            while (q=='Y');
В общем спрашивает, будете ли вводить, али нет уже.
0
273 / 132 / 44
Регистрация: 05.02.2015
Сообщений: 845
12.10.2016, 20:46 15
выложите ту программу, которую у вас забраковали, сдается, вы что-то не договариваете.
0
Любитель чаепитий
3587 / 1687 / 519
Регистрация: 24.08.2014
Сообщений: 5,709
Записей в блоге: 1
12.10.2016, 20:48 16
Цитата Сообщение от minore Посмотреть сообщение
а как же
Это указатель, а не динамический массив.
0
0 / 0 / 0
Регистрация: 11.10.2016
Сообщений: 48
12.10.2016, 20:51  [ТС] 17
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream> 
using namespace std;
int main()
{
    float y;
    float x;
    int n;
    cout << "Entered n. N>0!!!!!!!_____" << endl;
    cin >> n;
    int*a = new int[n];
    char o;
    cout << "Entered Operation" << endl;
    cin >> o;
    int z;
    cout << "Entered number" << endl;
    cin >> z;
    int q = 0;
    while (q < n)
    {
        switch (o)
        {
        case '+':
            a[q] = q + z;
            break;
        case '-':
            a[q] = q - z;
            break;
        case '*':
            a[q] = q * z;
            break;
        case '/':
            a[q] = q / z;
            break;
        }
            
        ++q;
    } x = ((a[0] + a[q]) *(n + 1)) / 2;
        y = x/a[q];
        cout << y << endl;
        int s = 1;
        if ( y = s)
            cout << "YES" << endl;
        else
            cout << "NO" << endl;
}
0
273 / 132 / 44
Регистрация: 05.02.2015
Сообщений: 845
12.10.2016, 20:52 18
возьмите любую книгу для начинающих, введите в поисковой строке "динамические массивы" и постарайтесь понять, чем они от указателей отличаются.
0
0 / 0 / 0
Регистрация: 11.10.2016
Сообщений: 48
12.10.2016, 20:53  [ТС] 19
Вы конечно извините, но мне кажется вы меня за дурочку совсем держите. Думаете не пыталась? Да СТО РАЗ! Нет того, что мне нужно!
0
Любитель чаепитий
3587 / 1687 / 519
Регистрация: 24.08.2014
Сообщений: 5,709
Записей в блоге: 1
12.10.2016, 20:56 20
Цитата Сообщение от minore Посмотреть сообщение
возьмите любую книгу для начинающих
А давайте поспорим? Берем с Википедии определение.
https://ru.wikipedia.org/wiki/... 0.B8.D0.B2
Цитата Сообщение от Википедии
Динамическим называется массив, размер которого, при необходимости, может меняться во время исполнения программы. Для изменения размера динамического массива язык программирования, поддерживающий такие массивы, должен предоставлять встроенную функцию или оператор.
Там же:
Цитата Сообщение от Википедии
C++
1
int *mas = new int[10];
Строго говоря вышеописанная реализация массива не является динамической, так как нет изменения размера массива во время работы, а всего лишь массив переменной длины. ... В С++ библиотечным решением является std::vector.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.10.2016, 20:56

Упорядочить по убыванию массив целых чисел заданного размера
Упорядочить по убыванию массив состоящий из 10 целых чисел. Помогите пожалуйста, очень нужно!!!

Ввод чисел в массив с клавиатуры и рандомный вывод
В общем ввожу числа в массив с клавиатуры они же рандомно выводятся. Желательно в Visual Basic...

Создать одномерный массив из 10 целых чисел (ввод производится с клавиатуры).
Создать одномерный массив из 10 целых чисел (ввод производится с клавиатуры). Отсортировать...

Сформировать одномерный массив целых чисел, используя ввод данных с клавиатуры
Найти в массиве наибольшее число подряд идущих одинаковых элементов (например...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.