c语言判断括号,c语言里的括号

本文目录一览:

C语言判断给定表达式的括号是否匹配

#include stdio.h

#include stdlib.h

int main(int argc, char *argv[])

{

char c;

int i=0,n;

int output[100];

int lefts=0,leftm=0,leftb=0;

int rights=0,rightm=0,rightb=0;

while((c=getchar())!=’*’)

{

if(c==’\n’)

{

if(lefts == rights leftm == rightm leftb ==rightb)output[i]=1;

else output[i]=0;

lefts=0;

leftm=0;

leftb=0;

rights=0;

rightm=0;

rightb=0;

i++;

}

if(c == ‘(‘ )lefts++;

if(c == ‘)’ )rights++;

if(c == ‘[‘ )leftm++;

if(c == ‘]’ )rightm++;

if(c == ‘{‘ )leftb++;

if(c == ‘}’ )rightb++;

}

n=i;

for(i=0;in;i++)

{

if(output[i]==1)printf(“yes\n”);

else printf(“no\n”);

}

system(“pause”);

return 0;

}

这是程序,当输入星号*就结束。不论是否一行只有它。有点不符合题意呃。你可以改改。

上面那个人写的为单行输入。且没有考虑中括号和大括号。

用C语言如何实现判断圆括号是否配对?

如果只有圆括号(没有[ ] 或 { }),不需要构造一个栈。因为用栈实现时,栈里装的都是一模一样的左括号 ‘(‘ ,因此我们只需定义一个 整型变量 来记录 栈中元素的个数 即可。具体代码如下:

#include stdio.h

int main (void)

{

char input = 0;

int num = 0; /* 不用栈,只记录栈中元素的个数,初始化为0 */

while (1 == scanf (“%c”, input)) /* 读入字符串,每次读一个字符存入 input 中 */

{

if (‘(‘ == input)

{

++num; /* 相当于把左括号压栈 */

}

if (‘)’ == input)

{

–num; /* 相当于遇到右括号时弹栈 */

}

if (0 num)

{

printf (“括号不匹配\n”);

return 0;

}

}

if (0 == num) /* 读完字符串后判断“栈”是否为空 */

{

printf (“括号匹配\n”);

}

else

{

printf (“括号不匹配\n”);

}

return 0;

}

C语言 判断括号()是否匹配

#includeiostream

using namespace std;

#define maxsize 100;

#define T 10;

struct sqstack{

char *base;

char *top;

int stacksize;

};

sqstack inistack(sqstack s){//初始化栈

s.base=new char[10];

if(!s.base)

cout”error”;

s.top=s.base;

s.stacksize=maxsize;

return s;

}

sqstack push(sqstack s,char e){//进栈

if(s.top-s.base=s.stacksize){

s.base=new char[10];

if(!s.base)

cout”error”;

s.top=s.base+s.stacksize;

s.stacksize+=T;

}

*s.top=e;

s.top++;

return s;

}

sqstack pop(sqstack s, char e){//出栈

e=*s.top;

— s.top;

return s;

}

int main(){

char *base,*top;

int total;

cout”请输入字符个数:”;

cintotal;

char a[total];

for(int i=0;itotal;i++){

cina[i];

}

sqstack s;

inistack(s);

for (int j=0;jtotal;j++){

if(a[j]=='(‘)

push(s,a[j]);

else if(a[j]==’)’)

pop(s,a[j]);

}

if(s.base==s.top)

cout”true”;//匹配完后,如果栈为空,则括号匹配正确

else

cout”failed”;

system(“pause”);

return 0;

}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/231514.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-11 01:05
下一篇 2024-12-11 01:05

相关推荐

  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python去掉数组的中括号

    在Python中,被中括号包裹的数据结构是列表,列表是Python中非常常见的数据类型之一。但是,有些时候我们需要将列表展开成一维的数组,并且去掉中括号。本文将为大家详细介绍如何用…

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29
  • Python Class括号中的参数用法介绍

    本文将对Python中类的括号中的参数进行详细解析,以帮助初学者熟悉和掌握类的创建以及参数设置。 一、Class的基本定义 在Python中,通过使用关键字class来定义类。类包…

    编程 2025-04-29
  • OpenJudge答案1.6的C语言实现

    本文将从多个方面详细阐述OpenJudge答案1.6在C语言中的实现方法,帮助初学者更好地学习和理解。 一、需求概述 OpenJudge答案1.6的要求是,输入两个整数a和b,输出…

    编程 2025-04-29
  • Python按位运算符和C语言

    本文将从多个方面详细阐述Python按位运算符和C语言的相关内容,并给出相应的代码示例。 一、概述 Python是一种动态的、面向对象的编程语言,其按位运算符是用于按位操作的运算符…

    编程 2025-04-29
  • Python语言由荷兰人为中心的全能编程开发工程师

    Python语言是一种高级语言,很多编程开发工程师都喜欢使用Python语言进行开发。Python语言的创始人是荷兰人Guido van Rossum,他在1989年圣诞节期间开始…

    编程 2025-04-28
  • Python语言设计基础第2版PDF

    Python语言设计基础第2版PDF是一本介绍Python编程语言的经典教材。本篇文章将从多个方面对该教材进行详细的阐述和介绍。 一、基础知识 本教材中介绍了Python编程语言的…

    编程 2025-04-28
  • Python语言实现人名最多数统计

    本文将从几个方面详细介绍Python语言实现人名最多数统计的方法和应用。 一、Python实现人名最多数统计的基础 1、首先,我们需要了解Python语言的一些基础知识,如列表、字…

    编程 2025-04-28

发表回复

登录后才能评论