Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2009, 15:37   #1
MaGWaY_minsk
Пользователь
 
Регистрация: 17.10.2008
Сообщений: 35
По умолчанию C++ и стек

Здравствуйте, трабл такой:
Цитата:
Создать стек из случайных чисел в диапазоне -10..+10 и удалить из него каждый второй элемент.
Вот что натворил я, но ничего не пашет))))

Код:
//-----------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include "Unit1.h"
using namespace std;
//-----------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
class Stack
{
   private:
      enum { MAX = 10 };
      int st [ MAX ]; // стек в виде массива =))
      int top;
   public:
      Stack() //конструктор
         { top = 0; }
      void push( int var ) //помещение в стек
         { st[++top] = var;}
      int pop() //достать из стека
         { return st[top--]; }
};
TForm1 *Form1;
//-----------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//-----------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
Application->Terminate();
}
//-----------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Stack s1;
int ch=0;
int rnd;
/*Очистка полей*/
Edit1->Clear();
Edit2->Clear();
/*-------------*/
        //Заполнение стека//
        while ( ch<=9)
        {
           rnd=rand()%10-rand()%10;
           s1.push(rnd);  //занесение в стек
           Edit1->Text=Edit1->Text+IntToStr(rnd)+" | ";
           ch++;
        }
        //Заполнение стека//
        /*----------------*/
        //Удаление ненужных элементов из  стека//
        ch=0;
        int k=0;
        int mas[9];
        bool doo=false;
        while (ch<=9)
        {
           if (doo=false)
           {
              mas[k]=1;
              k++;
              doo=true;
           }
           else doo=false;
           ch++;
        }
        //Удаление ненужных элементов из  стека//
        /*----------------*/
        for (k=0;k<=4;k++)
           {
              s1.push(mas[k]);
              Edit2->Text=Edit2->Text+IntToStr(mas[k])+" | ";
           }
        ch=0;
        while (ch<=4)
           {
              s1.pop();
              ch++;
           }
}
//-----------------------------------------------------------------------
Суть в том, что из стека по условию заносим элемент в созданный массив, после чего весь массив с конца переносим обратно в стек, но получается какая-то бредохрень=((
Помогите понять что тут нужно делать(((
MaGWaY_minsk вне форума Ответить с цитированием
Старый 14.12.2009, 13:09   #2
MaGWaY_minsk
Пользователь
 
Регистрация: 17.10.2008
Сообщений: 35
По умолчанию

Up! Всё ещё нужна помощь)
MaGWaY_minsk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стек lucky Паскаль, Turbo Pascal, PascalABC.NET 2 12.05.2009 18:35
стек в PM vladimir0108 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 08.01.2009 01:18
СТЕК KORT Фриланс 3 08.09.2008 23:38
Стек Еленка Помощь студентам 2 06.06.2008 18:58
Стек Foky Паскаль, Turbo Pascal, PascalABC.NET 8 13.05.2008 18:39