PDA

View Full Version : سوال: مشکل در اجرای پشته ای از اعداد صحیح



jahadgar91
دوشنبه 05 آبان 1393, 14:35 عصر
سلام دوستان من این کد رو ران که میکنم اجرا نمیشه خطامیده نمیدونم چرا؟ درست هم نوشتم اگه میشه ران کنید ببینید چجوریه قضیش؟
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define MAX 5
struct stack{
int top;
int items[MAX];
};
void popandtest(stack *s,int *x,int *underflow);
void topandtest(stack *s,int *x,int *underflow);
void pushandtest(stack *s,int x,int *overflow);
void print(stack *s);
int menu();
int empty(stack *s);
int main()
{
int x,underflow,overflow;
stack s;
s.top = -1;
while(1)
{
switch(menu())
{
case 1:
print(&s); break ;
case 2:
printf("enter x to push"); scanf("%d",&x);
pushandtest(&s,x,&overflow);
if(overflow)
{
printf("stack is full . press a key to continue."); getch();
} break ;
case 3:
popandtest(&s,&x,&underflow);
if(underflow)
{
printf(" stak is empty.press a key to contnue."); getch();
} break ;
case 4:
topandtest(&s,&x,&underflow);
if(underflow)
{
printf(" stak is empty.press a key to continue."); getch();
}
else
{
printf("Retived value is:%d",x); getch();
}break ;
case 5:
exit(1);
}// end of switch
}// end of while
}// main
//#################################################
void print(stack *s)
{
int i;
if(empty(s))
printf("stack is empty");
for(i=0;i <= s -> top;i ++)
printf("%d\t%5d",i+1,s -> items[i]);
printf("\n\t\t press a key to continue."); getch();
}
//################################################## ###
void pushandtest(stack *s,int x, int *overflow)
{
if(s -> top == MAX - 1)
*overflow = 1;
else
{
*overflow = 0;
s -> items [++(s -> top)] = x;
}
}
//################################################## #####
void popandtest(stack *s,int *x,int *underflow)
{
if(empty(s))
*underflow = 1;
else
{
*x = s -> items[(s -> top) --];
*underflow = 0;
}
}
//################################################## ###
void topandtest(stack *s,int *x,int *underflow)
{
if(empty(s))
*underflow = 1;
else
{
*x = s -> items[s -> top];
*underflow = 0;
}
}
//################################################## ####
int menu()
{
int c;
printf("1:prnt stack.\n");
printf("2:. add to stack\n");
printf("3:.pop from stack\n");
printf("4:retrieve from stack .\n");
printf("5: exit.\n");
printf("enter your select (12 -5).\n");
scanf("%d",&c);
return c;
}
این ارور رو مبده تو بورلند noname00.cpp(88,1):Illegal character 'L' (0x1)

sa1378
دوشنبه 05 آبان 1393, 15:58 عصر
من ران کردم خط 58 ارور داد:
58 ( undefined reference to `empty(stack

مسعود اقدسی فام
دوشنبه 05 آبان 1393, 17:12 عصر
بدنه‌ی تابع empty پیاده‌سازی نشده.