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

Определить количество элементов стека до минимального - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ C++, задачка. Где же я мог накосячить? http://www.cyberforum.ru/cpp-beginners/thread747339.html
Собственно, есть вот такая задачка: Используя С++, Win32 API и STL корректно реализовать следующую задачу: Откуда-то дано: class Request { };
C++ Определить в двумерном массиве числа, равные наименьшим значениям элементов строк Текст задачи: Дана действительная матрица размера m×n. Определить числа b_1, …, b_m, равные соответственно наименьшим значениям элементов строк. Смог сделать лишь начало: // lab_4a.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #define MAX_SIZE 100 using namespace std; http://www.cyberforum.ru/cpp-beginners/thread747336.html
C++ Перевод числа из одной системы счисления в другой
Здравствуйте. Нужна помощь, затрудняюсь в написании программы. Написать программу, которая переводит числа по основанию 8 в 4. Выполнить операцию деления. Добавлено через 1 час 36 минут На завтра зачет нужно получить, помогите, а сам недостаточно знаю язык.
Получить расписание звонков на весь учебный день (for) C++
Здравствуйте, помогите с задачей, нужно срочно, завтра экзамен, а я очень плохо знаю циклы! на укр. *В учбовому закладі задається початок учбового дня, тривалість “пари” або уроку, тривалість звичайної і великої перерви (та їх “місце” в розкладі), кількість пар (уроків). Отримати розклад дзвінків на весь учбовий день.* на рус. *В учебном заведениизадаёться начало рабочего дня,...
C++ Перегрузка оператора * http://www.cyberforum.ru/cpp-beginners/thread747328.html
Здрасте. Есть задача: Реализовать класс Matrix размерностью NxN, в которой хранятся числа типа float. Память под элементы выделять динамически. Перегрузить операции *, =. В функции main привести примеры реализации класса Matrix. Чтобы упростить себе жизнь, перегружаю * только для умножения на число ;) (хотя бы для начала) Немножко подчитав книжку, перешел к делу. Все, что на данный момент...
C++ Компилятор с поддержкой русского языка Использую MS Visual с++ 6.0, но он не поддерживает русского языка. Если в коде есть русские буквы - он заменяет их какими то непонятными символами. Подскажите какой другой компилятор выбрать, чтобы русскоязычные слова выводились нормально. подробнее

Показать сообщение отдельно
kobi23
1 / 1 / 0
Регистрация: 28.12.2011
Сообщений: 14
27.12.2012, 17:59     Определить количество элементов стека до минимального
Народ тема такая, есть исходный заполненный стек. Нужно в нём найти и вывести количество элементов расположенных до минимального. Т.е. в моём случа стек от 50 до -50. Получается, что до минимального 99 элементов... Плиз help.
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
#include <cstdlib> 
#include <iostream> 
 
using namespace std; 
 
struct tstk  
{
    int inf;  
    tstk *a;
} ;  
//удаление стека
tstk *DelStackAll(tstk *sp)  
{ 
    tstk *spt; int inf;  
    while(sp != NULL) 
    {  
        spt = sp;  
        inf= sp->inf;  
        cout << inf << " "; 
        sp = sp->a;  
        delete spt; 
    }  
    return NULL; 
}  
//добавление в стек    
tstk *AddStack(tstk *sp, int inf)  
{ 
    tstk *spt=new tstk;  
    spt->inf = inf;  
    spt->a = sp;  
    return spt; 
}  
//чтение элемента с удалением
tstk *ReadStackD(tstk *sp, int &inf)  
{ 
    if (sp == NULL) return NULL;  
    tstk *spt = sp;  
    inf= sp->inf;  
    sp = sp->a;  
    delete spt;  
    return sp; 
}  
 
int main() 
{ 
    setlocale(0,"");//подключение русского языка
    tstk*sp=NULL; 
    int i,j; 
    cout << "Исходный стек\n";
    for(i=50;i>=-50;i--)
    {
        sp=AddStack(sp, i ); //if ((i%2)== 0) {i} else {-i}
        cout<<i<<" ";
    }
    
  /*  tstk*sp2=NULL;
    int k =0;
    while ( sp )
    {
        int inf;
        sp = ReadStackD( sp, inf );
        if ( inf > 0 )
        {
            sp2 = AddStack( sp2, inf );
        }
    }
    cout << "\n\nНовый стек \n" <<k;
    sp2 = DelStackAll( sp2 );
    cout << endl;*/
    return 0;
}
Добавлено через 19 часов 23 минуты
Решил проблему... правда очень хитро... и не совсем как надо.
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
int main() 
{ 
    setlocale(0,"");//подключение русского языка
    tstk*sp=NULL; 
    int i,j; 
    cout << "Исходный стек\n";
    for(i=50;i>=-50;i--)
    {
        sp=AddStack(sp, i ); //if ((i%2)== 0) {i} else {-i}
        cout<<i<<" ";
    }
    
    tstk*t = sp;
    int min = t->inf;
    do
    {
        sp = t->a;
        if(t->inf < min)
            min = t->inf;
        delete t;
        t = sp;
    }while(t!=NULL);
 
    cout << "\n\nМинимальный элемент = " << min;
 
    tstk*sp2=NULL;
    int k =0;
    for(i=50;i>min;i--)
    {
        sp=AddStack(sp, i );
        k++;
    }
    cout << "\nКоличество элементов после минимального" << k;
    sp2 = DelStackAll( sp2 );
    cout << endl;
    return 0;
}
опять же, если у кого есть какие идеи, прошу помочь.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru