Форум программистов, компьютерный форум CyberForum.ru

Вывести содержимое очереди на экран двумя столбцами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Объясните условие http://www.cyberforum.ru/cpp-beginners/thread392261.html
Имеются числа А1,А2,...,АN и B1,B2,...,BN. Составить из них N пар (Аi, Bj) таким образом, чтобы сумма произведений пар была максимальна (минимальна). Каждое Ai и Bj в парах встречаются ровно по одному разу. Что значит сумма произведений пар была
C++ анимация в C++ OOP - нужен совет по подходу Всем день добрый Получил вот такое задание по C++ Object Oriented Programming: 1. создать програму которая будет получать от юзера данне прямоугольника(верхний левый угол+ширина и высота) и буде рисовать его на экране 80x25 - это сделано :) 2.теперь хотят что-бы я создал анимацию движения прямоугольников по экрану в 2 версиях: первая - без столкновений. втарая - со... http://www.cyberforum.ru/cpp-beginners/thread392250.html
C++ оператор if
если А = 5 , то пишется if(A == 5) а если А от 5 до 7 включительно, как записать ?
Как лучше возвращать значение из операции-функции C++
В следующем коде при перегрузке оператора '+' функция возвращает ссылку на временный объект Point&operator+(int d) и Point&operator+(int d,Point&Z) но так же можно вернуть сам объект Point operator+(int d) и Point operator+(int d,Point&Z) работает и так и так. Как лучше? #include <iostream> using namespace std; // класс "точка" class Point
C++ Задача.Игра в числа http://www.cyberforum.ru/cpp-beginners/thread392229.html
Вася очень любит играть в числа. Для этой игры нужна колода из N различных целых чисел от 1 до N. Эдик(который тоже очень любит эту игру) только что достал новую колоду. Вася с первого взгляда определил, что в колоде недостает одного числа. Зная N (количество чисел, которое должно быть в колоде) и S (сумму имеющихся чисел), помогите Васе определить, какого именно числа недостает. В первой...
C++ Иконка Всем привет !! ПОдскажите плизз как можно ехе файлу твоей программы можно задать иконку какую ты хочешь ? подробнее

Показать сообщение отдельно
irina3456
1 / 1 / 0
Регистрация: 23.05.2011
Сообщений: 91
27.11.2011, 11:16     Вывести содержимое очереди на экран двумя столбцами
Требуется модифицировать текст программы для реализации самостоятельного задания.
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include <stdlib.h>
#include <iomanip>
 
using namespace std;
 
struct CH
{
  int k;
  CH *ptr;
};
 
void aadd_och( CH **, CH **);
void del_och ( CH **, CH **);
 
void main()
{
  CH *pbeg=NULL, *pend=NULL;
  char c;
  while(1)
  {
    setlocale(LC_ALL,"Rus"); // вывод русских букв
    cout << "\n\n1. Добавление элемента в очередь\n";
    cout << "2. Выборка элемента из очереди\n";
    cout << "3. Выход из программы\n";
    cout << "Ваш выбор:";
    cin >> c;
    switch(c)
    {
      case '1':
    aadd_och(&pbeg, &pend);
    break;
      case '2':
    del_och(&pbeg, &pend);
    break;
      case '3':
    return;
     }
   }
}
 
void aadd_och ( CH **pn, CH **pk)
{
  CH *r;
  int m;
  cout << "Введите целое число=";
  cin >> m;
  // выделяем динамическую память
  r = new (CH);
  if ( r == NULL)
  {
    cerr << "Ошибка выделения динамической памяти\n";
    exit(1);
  }
  // заносим в дин. память введенное число
  // и нулевое значение адреса
  r->k = m;
  r->ptr = NULL;
 
  // определяем существуют ли очереди элементы
 
  if (*pn == NULL)
  {
    // очередь пустая
    // значит созданный элемент становится первым и последним
    *pn = r;
    *pk = r;
  }
  else
  {
    // в очереди есть элементы
    // добавляем элемент в конец
 
    (*pk)->ptr = r;
       // в адресное поле элемента, который был
       // последним занесл адрес вновь созданного эл-та
 
    *pk = r;  // вновь созданный элемент стал последним
         // в очереди
   }
}
 
void del_och ( CH **pn, CH **pk)
{
  CH *p;
  if (pn == NULL)
    cout << "Очередь пуста. Выбирать нечего.\n";
  else
  {
    p = *pn;
    cout << "Из очереди выбран эл-т = " << p->k << endl;
    *pn = p->ptr; // 2-ой элемент в очереди стал 1-ым
    delete p;      // удалили первый элемент из очереди
  }
}
Задание - Дан массив a[5][5]. Требуется ввести данные в массив. Все элементы массива записать в очередь, вывести содержимое очереди на экран двумя столбцами.

Допустим,
добавляем в программу ввод массива
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#define I 5
#define J 5
void inputmas( float [I][J], char);
void inputmas(float m[I][J], char im)
{
  int i,j;
  cout << "\nВводим массив " << im << "\n";
  for (i=0; i<I; i++)
    for ( j=0; j < J; j++)
    {
      cout << im << " [" << i << " ][ " << j << " ] = ";
      cin >> m[i][j];
    }
}
а куда добавлять ввод массива. Если честно я не понимаю, что значит очередь. После ввода массива, если используется очередь, то что она делает с массивом??
и как вывести в два столбца, если массив 5*5?

Добавлено через 8 часов 38 минут
?????????????

Добавлено через 11 часов 11 минут
Потихоньку сама, итак массив в программе мы вводим следующим образом:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include <stdlib.h>
#include <iomanip>
#define I 5
#define J 5
 
using namespace std;
 
struct CH
{
  int k;
  CH *ptr;
};
 
void inputmas( float [I][J], char);
void printmas(float [I][J], char);
void aadd_och( CH **, CH **);
void del_och ( CH **, CH **);
 
void main()
{
  float a[5][5];
  inputmas( a, 'a');
  printmas( a, 'a');
  CH *pbeg=NULL, *pend=NULL;
  char c;
  while(1)
  {
    setlocale(LC_ALL,"Rus"); // вывод русских букв
    cout << "\n\n1. Добавление элемента в очередь\n";
    cout << "2. Выборка элемента из очереди\n";
    cout << "3. Выход из программы\n";
    cout << "Ваш выбор:";
    cin >> c;
    switch(c)
    {
      case '1':
    aadd_och(&pbeg, &pend);
    break;
      case '2':
    del_och(&pbeg, &pend);
    break;
      case '3':
    return;
     }
   }
}
 
// функция ввода массива
void inputmas(float m[I][J], char im)
{
  int i,j;
  setlocale(LC_ALL,"Rus");
  cout << "\nВводим массив " << im << "\n";
  for (i=0; i<I; i++)
    for ( j=0; j < J; j++)
    {
      cout << im << " [" << i << " ][ " << j << " ] = ";
      cin >> m[i][j];
    }
}
 
void printmas(float m[I][J], char immas)
{
  int i,j;
  cout.setf( ios::showpoint | ios::fixed);
  setlocale(LC_ALL,"Rus");
  cout << "\nМассив " << immas ;
  for (i=0; i<I; i++)
    {
      cout << "\n";
      for(j=0; j<J; j++)
       {
        cout.width(8);     // минимальное кол-во позиций
        cout.precision(2); // 2 знака после запятой
        cout << m[i][j];
      }
    }  
}
 
void aadd_och ( CH **pn, CH **pk)
{
  CH *r;
  int m;
  cout << "Введите целое число=";
  cin >> m;
  // выделяем динамическую память
  r = new (CH);
  if ( r == NULL)
  {
    cerr << "Ошибка выделения динамической памяти\n";
    exit(1);
  }
  // заносим в дин. память введенное число
  // и нулевое значение адреса
  r->k = m;
  r->ptr = NULL;
 
  // определяем существуют ли очереди элементы
 
  if (*pn == NULL)
  {
    // очередь пустая
    // значит созданный элемент становится первым и последним
    *pn = r;
    *pk = r;
  }
  else
  {
    // в очереди есть элементы
    // добавляем элемент в конец
 
    (*pk)->ptr = r;
       // в адресное поле элемента, который был
       // последним занесл адрес вновь созданного эл-та
 
    *pk = r;  // вновь созданный элемент стал последним
         // в очереди
   }
}
 
void del_och ( CH **pn, CH **pk)
{
  CH *p;
  if (pn == NULL)
    cout << "Очередь пуста. Выбирать нечего.\n";
  else
  {
    p = *pn;
    cout << "Из очереди выбран эл-т = " << p->k << endl;
    *pn = p->ptr; // 2-ой элемент в очереди стал 1-ым
    delete p;      // удалили первый элемент из очереди
  }
}
Добавлено через 10 минут
теперь данные массива попробую записать в очередь.
например,данный массив выглядит так
1.00 2.00 3.00 4.00 5.00
6.00 7.00 9.00 10.00 11.00
.....................................
.....................................
21.00 22.00 23.00 24.00 25.00

то очередь должна выглядить 1 2 3 4 5 6 7 8 9 10 .......... так?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru