括号配对测试程序1.1版

原创 2006年06月26日 10:27:00
 

# include <stdio.h>
# include <malloc.h>
# define Max 100
/***************************************
*文件名  : parentheses11.c              *
*说明    :用来测试括号配对程序的      *
*版本    :v1.1                        *
*作者    :flyli                       *
*日期    :2006.5.22                   *
*修改    :flyli                       *
*修改日期:2006.5.22                   * 
*说明    :相对于前一版本增加了对括号中*
*          含有其它字符的兼容性        *
*          输入((a)(b))就会判断“正确”*
*          输入 ()(就会判断“错误”    *
***************************************/             
void Jadge(char* );

int main(void)
{
    char String[Max] = {0};
    scanf("%s",String);      //输入
    Jadge(String);            //判断
    system("pause");
    return 0;
}
/*****************************************
* 函数说明: 用来判断括号是否配对的函数  *
*            括号间可以包括字符和数字等  *
* 函数输入: 要判断的字符串的首地址      *
*****************************************/ 
void Jadge(char* PIn )
{
    char* PHead,* PPoint;
    char i;
    PHead = PPoint = (char*)malloc(Max*sizeof(char)); 
    *PPoint = 'X';
    PPoint ++;
    PHead ++;
    for(i = 1 ;i < Max+1 ;i++)
    {
        *PPoint = *PIn;
        if(*PPoint == ')')                               //遇到')'开始回查
        {
            *PPoint = 0;
            PPoint--;
            while(*PPoint != '(')                       //将'('以外的符号全部忽略
            {
                PPoint--;                               
                if(*PPoint == 'X'  )   //当回到了头也没找到配对的(遇到)'X' 或又发现一个'('
                {
                    puts("Error");
                    PHead--;
                    free(PHead);                 //把内存释放
                    return ;
                }    
            }
            if(*PPoint == '(')
            {
                PPoint--;          
            }       
        }
        PPoint++;
        PIn++;
    }
    if(* PHead == 0)               //防止 '('多于')'的现象
        puts("Right");
    else
        puts("Error");
    PHead--;                             //把内存释放
    free(PHead);
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

括号配对的小程序c++栈

括号配对检查程序

  • 2014-09-09 13:18
  • 799B
  • 下载

括号配对问题--一道ACM在线测试题

今天在南阳理工学院的在线ACM测试上做了一道题,简直弱爆了。。。请看原题: 描述 现在,有一行括号序列,请你检查这行括号是否配对。 输入第一行输入一个数N(0输出每组输入数据的输出占一行,如果...

传票翻打测试程序V1.1

  • 2007-11-01 10:16
  • 555KB
  • 下载

VS2010旗舰版+OpenCV2.2.0配置过程及测试程序

VS2010旗舰版+OpenCV2.2.0配置过程及测试程序           最近在一些编程高手的指导之下,初步学习了OpenCV的配置方法。由于VS版本较多,再加上OpenCV的版本则更为五花...

数据结构之栈的应用----C程序的括号配对检查

这周学完了严老师的栈及其应用。 已经对栈的应用有了一定的了解了,并且感觉到数据结构实在是很强大,它几乎可以解决我们生活中的大部分问题。 关于栈的基本常识,这里不做过多的解释,总之,其核心就是先进后...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)