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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2009, 13:55   #1
olli
 
Регистрация: 11.05.2009
Сообщений: 6
По умолчанию Стеки

Подскажите пожалуйста, как сформировать новый стек с парными елементами и вывести его на экран?

Код:
#include "stdafx.h"
#include "conio.h"
#include "malloc.h"

typedef struct sStack {
	int Data;
	struct sStack *Link;
} STACK;				

STACK *stTop,*st;			

void sPUSH (int *pushEl);	
void sPOP (void);			

int _tmain(int argc, _TCHAR* argv[])
{
	
	st=NULL;
	int i,n=0,k=0;
	printf("Vvedute n:");
	scanf("%d",&n);
	do
	{
		scanf("%d",&i);	
		k++;
		sPUSH(&i);
		
	} while (k != n+1);
	printf("Stek:\n");
	do
	{
		sPOP();
		printf("%d \n",st->Data);
	} while (st->Link != NULL);
	
	
	getch();
	return 0;
}
void sPUSH (int *pushEl)	 
{
	stTop = (STACK*)malloc(sizeof(int));
	stTop->Link = st;
	st = stTop;
	stTop->Data = *pushEl;
}
void sPOP()				
{
	st = stTop->Link;
	stTop=st;
}

Последний раз редактировалось Stilet; 12.11.2009 в 14:40.
olli вне форума Ответить с цитированием
Старый 13.11.2009, 04:30   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Не стал читать дальше этой строки
Код:
#include "malloc.h"
malloc - это функция, подключать надо stdlib.h
Исправьте, и если будет неправильно работать, напишите в чём ошибка
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 13.11.2009, 08:55   #3
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от Greblin Посмотреть сообщение
Не стал читать дальше этой строки
Код:
#include "malloc.h"
malloc - это функция, подключать надо stdlib.h
Исправьте, и если будет неправильно работать, напишите в чём ошибка
p.s. но вы оба не правы, это совершенно не ошибка. и такой header существует.
Вот его начало

Код:
/***
*malloc.h - declarations and definitions for memory allocation functions
*
*       Copyright (c) Microsoft Corporation. All rights reserved.
*
*Purpose:
*       Contains the function declarations for memory allocation functions;
*       also defines manifest constants and types used by the heap routines.
*       [System V]
*
*       [Public]
*
****/
BOBAH13 вне форума Ответить с цитированием
Старый 13.11.2009, 11:06   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

olli, что такое парные элементы?
Допустим, стек состоит из элементов: а,б,б,в,а. Так вот тут элементы б парные? А элементы а?
pu4koff вне форума Ответить с цитированием
Старый 13.11.2009, 11:57   #5
olli
 
Регистрация: 11.05.2009
Сообщений: 6
По умолчанию

Сори за то,что не уточнила)))Дано n>0 и набор с n целых чисел.
olli вне форума Ответить с цитированием
Старый 13.11.2009, 12:05   #6
olli
 
Регистрация: 11.05.2009
Сообщений: 6
По умолчанию

P.S. triton вашего юмора я не поняла)))Может я и новичок в этом,но не такая глупая,чтобы придумывать названия файлов)))
olli вне форума Ответить с цитированием
Старый 13.11.2009, 14:04   #7
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от olli
Код:
void sPUSH (int *pushEl)	 
{
	stTop = (STACK*)malloc(sizeof(int));
Тут ошибка )
Вы выделяете меньше памяти, нежели требуется для структуры. Если заменить на
Код:
stTop = (STACK*)malloc(sizeof(STACK));
то работает верно.
Из замечаний могу сказать, что передача переменной типа int по указателю необходимо лишь в тех случаях, когда она изменяется в функции, в иных случаях, когда требуется только значение этой переменной, лучше передавать её по значению - меньше возможность ошибки и быстрее выполнятся будет. Да, и я так и не увидел нигде, где же Вы освобождаете выделенную память )
Насчёт парных... Это в смысле которых по два, или "чётных"?)
netrino вне форума Ответить с цитированием
Старый 13.11.2009, 15:27   #8
olli
 
Регистрация: 11.05.2009
Сообщений: 6
По умолчанию

В смысле четных))))
olli вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стеки (как изменить задачу?) Anita_i Помощь студентам 3 30.11.2009 19:29
Однонаправленные списки, стеки и очереди palich Паскаль, Turbo Pascal, PascalABC.NET 2 16.01.2009 09:28
Задачи. Стеки Vladislav_87 Паскаль, Turbo Pascal, PascalABC.NET 1 23.05.2008 16:17