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

Реализация стека на массиве и динамическом распределении памяти - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Подскажите цикл для поиска количества различных чисел среди элементов массива http://www.cyberforum.ru/cpp-beginners/thread514800.html
Подскажите цикл для поиска количества различных чисел среди элементов массива a Например если я введу массив 1 2 3 1 4 8 2 3 5 3 Получается 6 различных чисел 1 2 3 4 8 5 Соответственно покажет 6 Нужен только цикл сам Тему случайно так назвал забыл раскладку клавиатуры сменить)
C++ файлы в файле есть строки данных, нужно в каждой итерации считать в одну переменную символ и потом в другую переменную всю остальную строку в конечном результате я должен получить map<char, stack<char>> хммм... блин map сортирует( что можно в замен него использовать? http://www.cyberforum.ru/cpp-beginners/thread514791.html
Создать класс Vector – вектор, используя динамическую память C++
Может кто подскажет листинг этой программы???
Не работает одно исключение ввода C++
Скажем так, это часть проги, должна проверять ввод значений, чтоб они были не нулевые, это условие работает, и чтоб элемент массива e1 был равен 3, иначе ошибка, и вот тут проблемы, т к на это условие он неадекватно реагирует и выводит Введите коэффициент x^3=1 Ошибка Введите коэффициент x^3=2 Ошибка Введите коэффициент x^3=3 Ошибка
C++ Создание искажения звука http://www.cyberforum.ru/cpp-beginners/thread514692.html
Есть мр3 файл, хочу исказить выводимый звук или добавить эффект. Использую библиотеку Bass для воспроизведения звука. Если нельзя через библиотеку bass, то каким другим способом можно исказить звук?
C++ Отрицательный цикл Помогите пожалуйста с задачкой, решил, но не проходит 1 тест. Условие: ограничение времени на тест: 0.5 сек. ограничение памяти на тест: 65536 KB. Дан орграф. Определить, есть ли в нем цикл отрицательного веса, и если да, то вывести его. Входные данные Во входном файле в первой строке записаны числа N, M (1 <= N <= 1000; 0 <= M <= 10000), количество вершин графа и ребер соответственно. ... подробнее

Показать сообщение отдельно
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
09.03.2012, 12:28     Реализация стека на массиве и динамическом распределении памяти
всем привет, дано такое задание:
Используя стек, решить следующую задачу.
Напечатать каждое слово текстового файла Т в обратном порядке. Стек реализовать в двух вариантах: на массиве и с использованием динамического распределения памяти.

я пока пытаюсь сделать на массиве
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
using namespace std;
 
const int MS=100;
char stack[MS]={0}; 
int t=0;
 
void PUSH(char y)
    {
        if(t>MS) {cout<<"Operaciya zapisi v stek nevozmojena, stek perepolnen"<<endl; system("PAUSE"); exit(0);} 
        else{
            t=t+1;
            stack[t]=y;}
    }
 
char POP()
    {
        if(t==0) {cout<<"Operaciya chteniya iz steka nevozmojna, stek pust"<<endl; system("PAUSE"); exit(0);}
        else{
            t=t-1;
            return stack[t+1];}
    }
 
void main()
{
    FILE *fps;
    fps=fopen("text.txt", "r");
 
    char *str;
    str=new char [MS];
    int i;
    while(!feof(fps))
        {
            fgets(str, MS, fps);
            for(i=0; str[i]!='\0'&& str[i]!='\n'; i++)
            {
               cout<<str[i];
            }
            if(str[i]=='\n') cout<<endl;
        }
    delete (str);
    cout<<endl<<endl;
    rewind(fps);
    char c;
    while(!feof(fps))
        {
            c=fgetc(fps);
            if(feof(fps)){while(t!=0) cout<<POP(); cout<<"\n";}
            if(c!=' ' && c!='\n') PUSH(c);
            if(t==0 & c!='\n') POP();
            if(c=='\n'){while(t!=0) cout<<POP(); cout<<"\n";}
            if(c==' '){while(t!=0) cout<<POP(); cout<<" ";}
        }
    system("PAUSE");
    fclose(fps);
}
проблема заключается в том что если к примеру из файла такой текст
Код
Korotkov Alex group 430-2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Oleg Ivanov Group 455
то проверка о том что стек переполнен при непрерывном его использования не срабатывает, хоть и стоит что t>MS, и должен выдать сообщ что стек полный... я про функцию PUSH
в чем проблема, что не так написано в моем коде? подскажите пож-та

Добавлено через 31 минуту
разве никто не знает и ничего не может подсказать??
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru