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/zh-tw/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

發表回復

登錄後才能評論