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

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

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

Очередь - C++

05.11.2010, 00:38. Просмотров 1049. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2010, 00:38     Очередь
Посмотрите здесь:

Очередь - C++
Задание из Лафоре, глава про массивы. Код Stakaray class Stack { private: enum { MAX = 10 }; ...

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

Очередь - C++
В чем проблема? не хочет запускаться код? Ошибки следующие: #include &lt;iostream&gt; #include &lt;queue&gt; using namespace std; ...

Очередь C++ - C++
всем доброе утро) вот такое задание:все отрицательные элементы сдвинуть в начало очереди(заполнение либо рандомно ,либо с клавы) ; велико...

очередь - C++
Что то никак не получается разобраться. Есть база данных клиентов банка. Создать очередь клиентов приоритет которых будет по количеству...

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
05.11.2010, 01:35     Очередь #2
Использовать strlen для int-a? оО

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

C++
1
       _getch;
Ну это все же функция. Так что
C++
1
       _getch();
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;
};
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
05.11.2010, 03:36     Очередь #4
White Luna, Черт... Попробую разобраться в коде. Но... Это жесть, а не код.
White Luna
32 / 26 / 2
Регистрация: 08.09.2010
Сообщений: 402
05.11.2010, 03:45  [ТС]     Очередь #5
угу, это точно,я сама еле разобралась, т к нам вообще это на псевдо коде писали, могу скинуть прогу по Стеку они похожи (просто Стек у меня работает)
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
05.11.2010, 04:00     Очередь #6
Нет. В этом я разбираться не буду. Если поймете - пожалуйста, односторонняя очередь.

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

Очередь - C++
Всем привет. Дано задание: Разработать программу, реализующую алгоритм очереди (20 элементов). Задача решается в двух вариантах:...

Очередь? What - C++
Всем доброго время суток.Дело в том, что с трудом дается с++, но очень хочется стать программистом.Вообщем ничего толком не объяснив препод...

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

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

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


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

Или воспользуйтесь поиском по форуму:
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
05.11.2010, 23:36     Очередь #10
White Luna, Так тяжело поменять? оО
Yandex
Объявления
05.11.2010, 23:36     Очередь
Ответ Создать тему
Опции темы

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