//假设运算数和运算符相互之间均有一个空格
#include <stdio.h>
#include <stdlib.h>
double stack[100];//建栈
int top=-1;//栈头
int isoperator(char data[])
{
char temp=data[0];
if(strlen(data)==1&&(temp=='+'||temp=='-')||temp=='*'||temp=='/')
return 1;
return 0;
}
int isoperand(char data[])
{
int countofpoint=0;//小数点个数
for(int i=0;data[i];i++){
if(isdigit(data[i]))//出现数字
continue;
else if(data[i]=='.'){
if(i==0||i==strlen(data)-1)//小数点出现在开头或者末尾,不合法
return 0;
countofpoint++;
if(countofpoint>1)//出现多个小数点,报错
return 0;
}
else if(data[i]=='-'&&i==0)
continue;
else//出现其他字符,报错
return 0;
}
return 1;
}
栈的应用之后缀表达式的计算(同时验证是否为合法的后缀表达式)
最新推荐文章于 2023-02-22 23:23:16 发布
该博客介绍了一个C语言实现的程序,用于计算后缀表达式并验证其是否合法。程序通过栈来处理运算符和运算数,判断运算符、运算数的合法性,并处理除数为0的情况。当后缀表达式合法且运算完成后,栈中应只剩一个元素,即为运算结果。
摘要由CSDN通过智能技术生成