Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
White Luna
32 / 26 / 2
Регистрация: 08.09.2010
Сообщений: 402
#1

Очередь - C++

05.11.2010, 00:38. Просмотров 1110. Ответов 9
Метки нет (Все метки)

Задача проги сделать очередь, по сути прога написана по лекции, но выдает ошибки с преобразованием параметра, понимаю, что ошибки глупые, но не могу вспомнить как их решить
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
#include "stdafx.h"
#include "string.h"
#include "iostream"
#include "conio.h"
#include "locale.h"
using namespace std;
 
int const N=10;
int head=1;
int tail=1;
int Q[N]={NULL};
 
int Stec_Enqueue(int Q[N])// проверка на переполнение очереди
{
    if(tail>=N-1) return true;
        else return false;
};
void Enqueue(int Q[N], int &x)// вставка эл-та в очередь
{
    if(Stec_Enqueue(Q)) printf("error underflow \n");
    else 
    {
        Q[tail]=x;
        if(tail=strlen(Q)) tail=1;
        else tail=tail+1;
    }
};
int Stec_Dequeue(int Q[N])//проверка на отсутсвие данных в очереди
{
    if(head==0) return true;
        else return false;
};
int Dequeue(int Q[N])// удаление эл-та из очереди
{
    if(Stec_Dequeue(Q)) printf("error underflow \n");
    else {
            int x=head;
            if(head=strlen(Q)) head=1;
            else head=head+1;
            return x;
         };
};
int _tmain()
{
    setlocale (LC_ALL, "Russian");
    int Q[N]={NULL};
    int y;
    int u=1;
        do
        {
printf("Произведите выбор ваших дальнейших действий 0-добавить в oчередь 1-удалить из очереди\n");
            char w;
            scanf ("%s", &w);
            switch (w)
            {
            case '0':
                    printf("Вы выбрали действие - добавить в очередь, теперь введите число, которое хотите добавить \n");
                    scanf ("%d", &y);
                    Enqueue(Q, y);
                for (int i=0; i<(N-1); i++)
                {
                    printf("%d ", Q[i]);
                }
                    printf (" \n %d", tail);
                    break;
            case '1':
                    printf("Вы выбрали действие - удалить из очереди\n");
                    int a=Dequeue(Q);
                    printf("%d \n", a);
                for (int i=0; i<(N-1); i++)
                {
                    printf("%d  ", Q[i]);
                }
                    printf (" \n %d", head);
                    Q[head]=NULL;
                    break;
            };
printf (" \n Хотите повторить запрос нажмите 1, выйти нажмите 0 \n");
        scanf_s ("%d", &u);
       }
     while (u==1);
     system(" \n pause");
     exit(0);
         _getch;
        return 0;
};
Ошибки
C++
1
2
3
4
5
6
7
c:\documents and settings\1\мои документы\visual studio 2008\projects\гпо\гпо\гпо.cpp(25) : error C2664: strlen: невозможно преобразовать параметр 1 из 'int []' в 'const char *'
        Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
c:\documents and settings\1\мои документы\visual studio 2008\projects\гпо\гпо\гпо.cpp(39) : error C2664: strlen: невозможно преобразовать параметр 1 из 'int []' в 'const char *'
        Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
c:\documents and settings\1\мои документы\visual studio 2008\projects\гпо\гпо\гпо.cpp(85) : warning C4551: в вызове функции отсутствует список аргументов
Журнал построения был сохранен в "file://c:\Documents and Settings\1\Мои документы\Visual Studio 2008\Projects\гпо\гпо\Debug\BuildLog.htm"
гпо - ошибок 2, предупреждений 1
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2010, 00:38
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Очередь (C++):

Очередь (сделать очередь, чтобы добавляло, удаляло, читало. Не STL.) - C++
Помогите пожалуйста написать очередь. Есть Температура double и ее тип int ну и нужно сделать очередь, чтобы добавляло, удаляло, читало....

Сформировать очередь по файлу целых чисел. Промоделировать очередь в супермаркете - C++
Сформировать очередь по файлу целых чисел. Промоделировать очередь в супермаркете. В каждый момент времени происходит одно из событий:...

Задача на очередь (вывод сообщения, что очередь пуста) - C++
Доброго дня! Есть задачка на очередь, которая работает нормально, только надо добавить код, чтобы выводил сообщение, что очередь пуста.....

Очередь, теория. Очередь на шести стеках - C++
Здравствуйте, пытаюсь побольше найти информации про очереди и их применение в программировании. Из того что я нашел, все описывается лишь...

Создать очередь. Добавить элемент в очередь. Удалить элемент из очереди - C++
Нужно создать очередь. Добавить элемент в очередь. Удалить элемент из очереди. Вот моё &quot;творение&quot;. int main() { int...

Очередь - C++
Описать структуру с именем TRAIN, содержащую следующие поля: - название пункта назначения - номер поезда - время отправления ...

9
ForEveR
В астрале
Эксперт С++
7994 / 4753 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
05.11.2010, 01:35 #2
Использовать strlen для int-a? оО

C++
1
if(head=strlen(Q)) head=1;
Тут я полагаю должно быть таки сравнение

C++
1
       _getch;
Ну это все же функция. Так что
C++
1
       _getch();
0
White Luna
32 / 26 / 2
Регистрация: 08.09.2010
Сообщений: 402
05.11.2010, 03:31  [ТС] #3
теперь вылетает при вводе данных
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
#include "stdafx.h"
#include "string.h"
#include "iostream"
#include "conio.h"
#include "locale.h"
using namespace std;
 
int const N=10;
char head=1;
char tail=1;
char Q[N]={NULL};
 
char Stec_Enqueue(char Q[N])// проверка на переполнение очереди
{
    if(tail>=N-1) return true;
        else return false;
};
void Enqueue(char Q[N], char &x)// вставка эл-та в очередь
{
    if(Stec_Enqueue(Q)) printf("error underflow \n");
    else 
    {
        Q[tail]=x;
        if(tail=strlen(Q)) tail=1;
        else tail=tail+1;
    }
};
char Stec_Dequeue(char Q[N])//проверка на отсутсвие данных в очереди
{
    if(head==0) return true;
        else return false;
};
char Dequeue(char Q[N])// удаление эл-та из очереди
{
    if(Stec_Dequeue(Q)) printf("error underflow \n");
    else {
            int x=head;
            if(head=strlen(Q)) head=1;
            else head=head+1;
            return x;
         };
};
int _tmain()
{
    setlocale (LC_ALL, "Russian");
    char Q[N]={NULL};
    char y;
    int u=1;
        do
        {
printf("Произведите выбор ваших дальнейших действий 0-добавить в oчередь 1-удалить из очереди\n");
            char w;
            scanf ("%s", &w);
            switch (w)
            {
            case '0':
                    printf("Вы выбрали действие - добавить в очередь, теперь введите число, которое хотите добавить \n");
                    scanf ("%s", &y);
                    Enqueue(Q, y);
                for (int i=0; i<(N-1); i++)
                {
                    printf("%s ", Q[i]);
                }
                    printf (" \n %s", tail);
                    break;
            case '1':
                    printf("Вы выбрали действие - удалить из очереди\n");
                    int a=Dequeue(Q);
                    printf("%s \n", a);
                for (int i=0; i<(N-1); i++)
                {
                    printf("%s  ", Q[i]);
                }
                    printf (" \n %s", head);
                    Q[head]=NULL;
                    break;
            };
printf (" \n Хотите повторить запрос нажмите 1, выйти нажмите 0 \n");
        scanf_s ("%d", &u);
       }
     while (u==1);
     system(" \n pause");
     exit(0);
         _getch();
        return 0;
};
0
ForEveR
В астрале
Эксперт С++
7994 / 4753 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
05.11.2010, 03:36 #4
White Luna, Черт... Попробую разобраться в коде. Но... Это жесть, а не код.
0
White Luna
32 / 26 / 2
Регистрация: 08.09.2010
Сообщений: 402
05.11.2010, 03:45  [ТС] #5
угу, это точно,я сама еле разобралась, т к нам вообще это на псевдо коде писали, могу скинуть прогу по Стеку они похожи (просто Стек у меня работает)
0
ForEveR
В астрале
Эксперт С++
7994 / 4753 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
05.11.2010, 04:00 #6
Нет. В этом я разбираться не буду. Если поймете - пожалуйста, односторонняя очередь.

Списки, стеки, очереди
Пост №7 в той теме.
0
White Luna
32 / 26 / 2
Регистрация: 08.09.2010
Сообщений: 402
05.11.2010, 09:27  [ТС] #7
см. непонятно
0
ForEveR
В астрале
Эксперт С++
7994 / 4753 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
05.11.2010, 11:36 #8
White Luna, Конкретнее, что не понятно?
0
White Luna
32 / 26 / 2
Регистрация: 08.09.2010
Сообщений: 402
05.11.2010, 13:09  [ТС] #9
я прогу пишу не через класс, а через функцию
0
ForEveR
В астрале
Эксперт С++
7994 / 4753 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
05.11.2010, 23:36 #10
White Luna, Так тяжело поменять? оО
0
05.11.2010, 23:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2010, 23:36
Привет! Вот еще темы с ответами:

Очередь - C++
Всем приветики! Если кто нибудь знает помогите пожалуйста вот с такой задачкой. Есть какая-то очередь с элементами, нужно найти все...

с++ очередь - C++
Ребят создал очередь. Ввод и удаление. есть проблемы с выводом. скину шапку и код на удаление using namespace std; const int N=6; ...

Очередь - C++
Реализуйте структуру данных &quot;очередь&quot; на основе циклического массива или другим способом. Входные данные В каждой строке входных...

Очередь С++ - C++
Дан текстовый файл Вводятся с клавы числа А и В Надо вывести НА ЭКРАН СНАЧАЛА ВСЕ ЧИСЛА меньше А затем между А и В а затем больш В ...


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

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

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