| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 732 人关注过本帖
标题:[求助]我的这个程序怎么停不下来?
取消只看楼主 加入收藏
fabio210
Rank: 1
等 级:新手上路
威 望:1
帖 子:58
专家分:0
注 册:2005-11-6
收藏
 问题点数:0 回复次数:3 
[求助]我的这个程序怎么停不下来?
#include "stdio.h"
#include <string.h>
#define OK 1
#define ERROR 0
#define NULL 0
#define OVERFLOW -2
#define STACK_INIT_SIZE 100
typedef char SElemType;
typedef int Status;
char op[7]={'+','-','*','/','(',')','#'};
int precede[7][7]={1,1,-1,-1,-1,1,1,
1,1,-1,-1,-1,1,1,
1,1,1,1,-1,1,1,
1,1,1,1,-1,1,1,
-1,-1,-1,-1,-1,0,-2,
1,1,1,1,-2,1,1,
-1,-1,-1,-1,-1,-2,0};
typedef struct{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;
Status InitStack(SqStack *S)
{
S->base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));
if(!S->base) exit(OVERFLOW);
S->top=S->base;
S->stacksize=STACK_INIT_SIZE;
return OK;
}
char GetTop(SqStack *S)
{SElemType e;
if(S->top==S->base) return ERROR;
e=*(S->top-1);
return e;
}
Status Push(SqStack *S,SElemType e)
{
*S->top++=e;
return OK;
}
Status Pop(SqStack *S,SElemType *e)
{
if(S->top==S->base) return ERROR;
*e=*S->top; S->top--;
return OK;
}
Status In(char c,char op[])
{
int i;
for(i=0;i<7;i++)
if(c==op[i]) return 1;
return 0;
}
Status Compare(char a,char b)
{
int i,j;
for(i=0;i<7;i++)
if(a==op[i]) break;
for(j=0;j<7;j++)
if(b==op[j]) break;
return precede[i][j];
}
int operate(char *a,char *e,char *b)
{
switch(*e)
{
case'+': return *a+*b;
case'-': return *a-*b;
case'*': return (*a)*(*b);
case'/': return (*a)/(*b);
}
}
int main()
{
char c,*x=NULL,*a=NULL,*b=NULL,*theta=NULL;
SqStack *OPTR=NULL,*OPND=NULL;
InitStack(OPTR); Push(OPTR,'#');
InitStack(OPND);
c=getchar();
while(c!='#'||GetTop(OPTR)!='#')
{
if(!In(c,op)) {Push(OPND,c);c=getchar();}
else
{
switch(Compare(GetTop(OPTR),c))
{
case -1:
Push(OPTR,c); c=getchar();;
break;
case 0:
Pop(OPTR,x); c=getchar();
break;
case 1:
Pop(OPTR,theta);
Pop(OPND,b); Pop(OPND,a);
Push(OPND,operate(a,theta,b));
break;
}
}
}
printf("\n=%d",GetTop(OPND));
getch();
}
这是个简单的计算功能的程序,不过运行的时候怎么停不下来?
搜索更多相关主题的帖子: include 
2005-12-06 15:10
fabio210
Rank: 1
等 级:新手上路
威 望:1
帖 子:58
专家分:0
注 册:2005-11-6
收藏
得分:0 
怎么没人帮忙啊

2005-12-06 22:46
fabio210
Rank: 1
等 级:新手上路
威 望:1
帖 子:58
专家分:0
注 册:2005-11-6
收藏
得分:0 
谢谢楼上的,我是在tc下运行的,所以没加注释。呵呵

2005-12-07 12:38
fabio210
Rank: 1
等 级:新手上路
威 望:1
帖 子:58
专家分:0
注 册:2005-11-6
收藏
得分:0 

问题已经基本上解决了,再次谢谢二楼的哥们的指教。


2005-12-07 12:43
快速回复:[求助]我的这个程序怎么停不下来?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035059 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved