Язык С. Стеки - Форум
Среда, 07.12.2016, 11:31
Задачи по информатике
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: ignorer, KOT_B_MEIIIKE, PASCAL26, atvrider 
Форум » Решение задач по информатике » Задачи по программированию + блок-схемы » Язык С. Стеки (Создать стек для символов)
Язык С. Стеки
ПеПпИДата: Среда, 18.05.2011, 15:50 | Сообщение # 1
Сержант
Группа: Новичок
Сообщений: 5
[ 0 ]
Статус: Offline
Задание:
Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Добавлять символы с экрана в стек. В случае совпадения вводимого символа с вершиной стека вытолкнуть его и распечатать ее.

P.S.Помогите пожалуйста, ничего не получается с этой темой!!!

Вот что у меня есть:
#include <conio.h>
#include <stdio.h>
struct stack{
char c[10];
stack *next;
};
int main(){
stack *top,*p1;
int n;

printf("Size of stack: ");
scanf("%d",&n);
for(;n;n--){
p1=new stack;
scanf("%s",&p1->c);
p1->next=top;
top=p1;
}


Сообщение отредактировал ПеПпИ - Среда, 18.05.2011, 16:16
 
roguДата: Четверг, 19.05.2011, 18:33 | Сообщение # 2
Генерал-лейтенант
Группа: Новичок
Сообщений: 52
[ 1 ]
Статус: Offline
Стэк это обычный массив, который превращается в стэк благодаря паре функций
Здесь все что тебе нужно , готовую программу тока завтра , если успею
char *p;указатель на область свободной памяти
char *tos;указатель на вершину
char *bos; указатель на дно стека
scanf("%d",&n);
p=(char*)(malloc(n*sizeof(char));

void push(char i)
{

if(p==i)
{
pop();
printf("%ch",i);
}

if(p>bos)
{
printf("Стэк полон\n");

}
*p=i;

p++;

}
int pop(void)
{
p--;
if(p<tos)
printf("Стэк пуст\n");
return 0;
}
return *p;
}

 
ПеПпИДата: Четверг, 19.05.2011, 18:46 | Сообщение # 3
Сержант
Группа: Новичок
Сообщений: 5
[ 0 ]
Статус: Offline
Буду надеяться, что успеете))) Буду ждать, заранее благодарна!!!
 
roguДата: Пятница, 20.05.2011, 19:51 | Сообщение # 4
Генерал-лейтенант
Группа: Новичок
Сообщений: 52
[ 1 ]
Статус: Offline
Проверь обязательно , то ли это-:)
Code
#include "stdafx.h"
//..#include "stdafx.h"

#include<conio.h>
#include<stdlib.h>
#
char*p;
   char *tos;
   char *bos;

void push(char ch)
{
   if(p>bos){
    printf("Стэк полон\n");
    return ;
   }
   *p=ch;
   p++;
}
char pop(void)
{
   p--;
   if(p<tos)
   {
    printf("Стэк пуст\n");
    return '0';}
   return *p;
}

int _tmain(int argc, _TCHAR* argv[])
{
     
   bool b=false;
     
   char ch;
   int n;
   printf("%s","Enter stack size n");
   scanf("%d",&n);
      flushall() ;
p=(char*)malloc(n*sizeof(char));
tos =p;
bos=p+n-1;
while(!b)
{
printf("%s","Enter char ch");
scanf("%c", &ch);
push(ch);
   flushall();
     
//printf("%c\n",pop());
   if(*(p-2)==ch)
   {
printf("%s\n","Done");
printf("%c\n",*(p-2));
    b=true;

}
}
getch();
     
     
     
     
     
   return 0;
}


Сообщение отредактировал rogu - Суббота, 21.05.2011, 18:27
 
ПеПпИДата: Пятница, 20.05.2011, 20:05 | Сообщение # 5
Сержант
Группа: Новичок
Сообщений: 5
[ 0 ]
Статус: Offline
Не получается запустить программу, компилятор ругается на последнюю фигурную скобку(((
fatal error C1010: unexpected end of file while looking for precompiled header directive
 
roguДата: Суббота, 21.05.2011, 18:31 | Сообщение # 6
Генерал-лейтенант
Группа: Новичок
Сообщений: 52
[ 1 ]
Статус: Offline
У меня программа работает, в коде(вверху) я изменил две строчки сделай то же самое
Скопируй свой код и выложи сюда
 
ПеПпИДата: Суббота, 21.05.2011, 19:40 | Сообщение # 7
Сержант
Группа: Новичок
Сообщений: 5
[ 0 ]
Статус: Offline
У Меня уже всё работает!!!Спасибо большое за лабу))))
 
Форум » Решение задач по информатике » Задачи по программированию + блок-схемы » Язык С. Стеки (Создать стек для символов)
Страница 1 из 11
Поиск:

Copyright MyCorp © 2016