3 / 1 / 2
Регистрация: 29.05.2019
Сообщений: 27
1

Заполнение стека с использованием динамического массива

29.05.2019, 20:46. Показов 2092. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста, не понимаю в чём ошибка. Стек должен просто должен заполниться и вывестись.
Ввожу например в массив из 5 ячеек числа 1 2 3 4 5 и выводится просто 5 5 5 5 5.


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
  #include <iostream>
  using namespace std;
 
  int main()
  {
      int i;
      int j;
      int k;
      int sum=0;
      int temp=0;
      int size;
      float sred=0;
      cout <<"Input size massive: ";
      cin >> size;
 
      int *mas=new int[size];
 
      for (i=0;i < size; i++)
      {
          mas[i]=0; // заполнение массива нулями
      }
for (i=0;i < size; i++)
{
          cout << "Input number in " << 0 << " cell massive: ";     // заполнение нулёвой ячейки массива
          cin >> mas[0];// заполнение нулёвой ячейки массива
 
      
 
         for (k=0;k<size;k++)
         {
           mas[k+1]=mas[k]; // сдвиг
         }
 
}
      for (i=0;i < size; i++ )
      {
          cout << mas[i] << " "; // вывод массива
      }
 
 
  }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2019, 20:46
Ответы с готовыми решениями:

Заполнение динамического массива с использованием цикла, с клавиатуры
Здравствуйте, дорогие. С помощью цикла реализуйте заполнение массива с клавиатуры. Размер массива...

Реализация стека средством динамического массива
///Предоставляет списко-подобные структуры. unit Lists; type ///Базовый класс для всех...

Заполнение динамического массива
Добрый день! У меня проблемы с массивами. в столбце A есть значения &quot;Итого:&quot; в количестве 7-8...

Заполнение динамического массива
Функция для записи и хранения имён текстовых файлов из папки (использование векторов (vector)...

9
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
29.05.2019, 20:56 2
Цитата Сообщение от Reghan Посмотреть сообщение
Помогите пожалуйста, не понимаю в чём ошибка. Стек должен просто должен заполниться и вывестись.
Ввожу например в массив из 5 ячеек числа 1 2 3 4 5 и выводится просто 5 5 5 5 5.
Потому надо сначала сдвигать, а потом заполнять mas[0], а не наоборот. Причём сдвиг у тебя тоже кривой. Надо
C++
1
2
3
4
for (k=1; k<size; k++)
{
mas[k]=mas[k - 1]; // сдвиг
}
1
3 / 1 / 2
Регистрация: 29.05.2019
Сообщений: 27
29.05.2019, 21:03  [ТС] 3
Исправил как вы сказали, но все равно не робит.
C++
1
2
3
4
5
6
7
8
9
10
for (i=0;i < size; i++)
      {
        for (k=1; k<size; k++)
        {
          mas[k]=mas[k - 1]; // сдвиг
        }
          cout << "Input number in " << 0 << " cell massive: ";     // заполнение нулёвой ячейки массива
          cin >> mas[0];// заполнение нулёвой ячейки массива
 
      }
0
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
29.05.2019, 21:05 4
Цитата Сообщение от Reghan Посмотреть сообщение
Исправил как вы сказали, но все равно не робит.
Покажи код
0
3 / 1 / 2
Регистрация: 29.05.2019
Сообщений: 27
29.05.2019, 21:06  [ТС] 5
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
#include <iostream>
 
  using namespace std;
 
  int main()
  {
 
 
      int i;
      int j;
      int k;
      int sum=0;
      int temp=0;
      int size;
      float sred=0;
      cout <<"Input size massive: ";
      cin >> size;
 
      int *mas=new int[size];
 
      for (i=0;i < size; i++)
      {
          mas[i]=0; // заполнение массива нулями
      }
      for (i=0;i < size; i++)
      {
        for (k=1; k<size; k++)
        {
          mas[k]=mas[k - 1]; // сдвиг
        }
          cout << "Input number in " << 0 << " cell massive: ";     // заполнение нулёвой ячейки массива
          cin >> mas[0];// заполнение нулёвой ячейки массива
 
      }
      for (i=0;i < size; i++ )
      {
          cout << mas[i] << " ";
      }
 
 
  }
0
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
29.05.2019, 21:08 6
А что не так?

Добавлено через 57 секунд
И пользуйся тегом [CPP], кномпа С++ сверху
0
3 / 1 / 2
Регистрация: 29.05.2019
Сообщений: 27
29.05.2019, 21:11  [ТС] 7
Всё также ввожу 1 2 3 4 5, а выводит 5 4 4 4 4

Добавлено через 2 минуты
Исправил
0
4063 / 3317 / 924
Регистрация: 25.03.2012
Сообщений: 12,483
Записей в блоге: 1
29.05.2019, 21:11 8
Цитата Сообщение от Reghan Посмотреть сообщение
for (k=1; k<size; k++)
{
mas[k]=mas[k - 1]; // сдвиг
в обратном, порядке же, ну!!!
0
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
29.05.2019, 21:15 9
Лучший ответ Сообщение было отмечено Reghan как решение

Решение

Цитата Сообщение от Reghan Посмотреть сообщение
Всё также ввожу 1 2 3 4 5, а выводит 5 4 4 4 4
Ну да, сдвиг на месте, но кривой. Попробуй так
C++
1
2
3
4
for (k= size - 1; k > 0; --k)
{
mas[k] = mas[k - 1]; // сдвиг
}
1
3 / 1 / 2
Регистрация: 29.05.2019
Сообщений: 27
29.05.2019, 21:16  [ТС] 10
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Ну да, сдвиг на месте, но кривой. Попробуй так
Спасибо больше, помогли. Всё заработало.
0
29.05.2019, 21:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2019, 21:16
Помогаю со студенческими работами здесь

Заполнение динамического массива
Нужно заполнить массив цыфрами с ввода пользователя, пощитать их и добавить. С простым я понимаю...

Заполнение динамического массива
procedure TForm1.LoadListItem; var Item:TListItem; i,j: integer; s,s1: String; begin ...

Заполнение динамического массива
Коллеги, помогите пожалуйста. В строке 3 находятся данные. Пытаюсь заполнить массив начиная со...

Заполнение динамического массива
Хочу вручную заполнить динамический массив. В последний элемент массива после заполнении...


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

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

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