试用C语言设计一个程序,程序的功能是接收任意输入一个算术表达式,判断表达式中的括号是否配对出现.功能要求及说明:(1) 任意输入一个算术表达式;(2) 利用栈,判断表达式中出现的

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 05:58:20
试用C语言设计一个程序,程序的功能是接收任意输入一个算术表达式,判断表达式中的括号是否配对出现.功能要求及说明:(1) 任意输入一个算术表达式;(2) 利用栈,判断表达式中出现的

试用C语言设计一个程序,程序的功能是接收任意输入一个算术表达式,判断表达式中的括号是否配对出现.功能要求及说明:(1) 任意输入一个算术表达式;(2) 利用栈,判断表达式中出现的
试用C语言设计一个程序,程序的功能是接收任意输入一个算术表达式,判断表达式中的括号是否配对出现.
功能要求及说明:
(1) 任意输入一个算术表达式;
(2) 利用栈,判断表达式中出现的括号是否配对出现,若括号序列是匹配的,提示:“匹配”;若不匹配,应报告错误的原因,如“左括号多余”或“右括号多余”或“左右括号不配对”等.
(3) 采用模块化设计.
测试数据
正确测例:();[()]; (())[]();[ ][(( ))]等
错误测例:(;);((;(]; [[( ))];(([]);[( ))]] 等
本人急用,回答正确者.再加100财富值

试用C语言设计一个程序,程序的功能是接收任意输入一个算术表达式,判断表达式中的括号是否配对出现.功能要求及说明:(1) 任意输入一个算术表达式;(2) 利用栈,判断表达式中出现的
//最近的栈作业~
#include<iostream>
using namespace std;
class Stack
{
private:
int maxSize;
int top;
int *p;
public:
Stack(int size)
{
maxSize=size;
top=-1;
p=new int[maxSize];
}
~Stack()
{
delete [] p;
}
void Clear()                     //清空栈
{
top=-1;
}
bool Push(const int value)       //压入
{
if(top==maxSize-1)
{
cout<<"栈满溢出"<<endl;
return false;
}
else
{
p[++top]=value;
return true;
}
}
bool Pop(int &value)               //读取栈顶元素的值并删除
{
if(top==-1)
{
cout<<"栈为空,不能进行删除操作"<<endl;
return false;
}
else
{
value=p[top--];
return true;
}
}
bool Top(int &value)                //读取栈顶元素的值并不删除
{
if(top==-1)
{
cout<<"栈为空,不能读取栈顶元素"<<endl;
return false;
}
else
{
value=p[top];
return true;
}
}
bool IsEmpty()                 //栈空否?
{
if(top==-1)
return true;
else
return false;
}
bool IsFull()                  //栈满否?
{
if(top==maxSize-1)
return true;
else
return false;
}
void show()                //查看栈内元素的值
{
int t=top;
cout<<"栈内元素:"<<endl;
while(t+1)
cout<<p[t--];
cout<<endl;
}
};
void match()
{
int i=0,flag=1,temp,flag2=1;
char s[50];
char c;
Stack formula(10);
cout<<"输入一个式子:\n";
cin>>s;
c=s[i];
while(c&&flag)
{
if(c=='('||c=='['||c=='{')
{
formula.Push(c);
flag2=0;
}
else if(c==')'||c==']'||c=='}')
{
if(formula.IsEmpty())
{
flag=0;
break;
}
formula.Pop(temp);
if(temp==c-1||temp==c-2);
else
{
flag=0;
break;
}
}
c=s[++i];
}
if(!formula.IsEmpty())
flag=0;
if(flag2)
cout<<"无括号\n";
else if(flag)
cout<<"括号配对正确\n";
else
cout<<"括号配对错误\n";
}
int main()
{
match();
return 0;
}

试用C语言设计一个程序,程序的功能是接收任意输入一个算术表达式,判断表达式中的括号是否配对出现.功能要求及说明:(1) 任意输入一个算术表达式;(2) 利用栈,判断表达式中出现的 在语言处理程序中,解释程序的功能是() A.解释执行高级语言程序 B.将汇编语言程序编译成目标程序 C.解释执行汇编语言程序 D.将高级语言程序编译成目标程序 求设计c语言程序 【C语言】下面程序的功能是:读入一个整数m,计算如下公式的值:下面程序的功能是:读入一个整数m,计算如下公式的值:我的程序哪里错了. 请设计一个C语言程序,能实现这个功能:输入10个单词,按字典序输出各单词 接收一个四位整.编写一个程序,将该数的每一位数字相加并显示结果.(C语言) 用C语言语句设计一段程序,功能是统计100至到1000之间各位数相加之和为7的个数. 设计一个程序:输入一个整数,判断它的奇偶性.请用c语言 设计一个程序,输入年份判断是否是闰年,c语言实现 C语言 数据结构 帮忙设计一个简单的程序 计算结点个数 用C语言设计一个程序以便能快速地实现复制任意长度的文件 getchar函数是什么函数?它的功能是什么?putchar函数是什么?它的功能是什么?题是C语言程序! C语言程序 设计:用辗转相除法求两个正整数的最大公约数编写程序 c语言海伦公式求三角形面积,求纠错假设在平面内,有一个三角形,边长分别为a、b、c,三角形的面积S可由以下公式求得:而公式里的p为半周长(周长的一半):请你设计一个程序,改程序接收 用C语言编写一个程序 其功能是根据三角形的三边长,求三角形的面积.要用main函数 程序改错题.请修改程序,使下面的程序是完成1+2+……+N的求和功能.(提示:有5个错误) C语言程序改错题.请修改程序,使下面的程序是完成1+2+……+N的求和功能.(提示:有5个错误)#include void main() C语言编写一个程序,实现如下功能:从键盘输入一个三位数,求各位数字之和. 设计一个C语言程序;输入整数x,如果x是正数,输出x的平方;如果x是负数,输出x的2倍.