c語言這段括號匹配程式為什麼是錯的

2021-06-26 19:15:58 字數 1846 閱讀 6473

1樓:

標頭檔案:(另存為seqstack.h)

typedef struct

seqstack;

void stackinitiate(seqstack *s) /*初始化順序堆疊s*/

int stacknotempty(seqstack s)

/*判順序堆疊s非空否,非空則返回1,否則返回0*/

int stackpush(seqstack *s, datatype x)

/*把資料元素值x壓入順序堆疊s,入棧成功則返回1,否則返回0 */

else

}int stackpop(seqstack *s, datatype *d)

/*彈出順序堆疊s的棧頂資料元素值到引數d ,出棧成功則返回1,否則返回0*/

else

}int stacktop(seqstack s, datatype *d)

/*取順序堆疊s的當前棧頂資料元素值到引數d ,成功則返回1,否則返回0*/

else

}括號問題

#include

#include

#include

#define maxstacksize 100

typedef char datatype;

#include "seqstack.h"

void expiscorrect(char exp, int n)

//判斷有n個字元的字串exp左右括號是否配對正確

else if(exp[i] == ']' && stacknotempty(mystack)

stackpop(&mystack, &c); //出棧

else if(exp[i] == ']' && stacknotempty(mystack)

else if(exp[i] == '}' && stacknotempty(mystack)

else if(((exp[i] == ')') || (exp[i] == ']') || (exp[i] == '}'))

&& !stacknotempty(mystack))

}if(stacknotempty(mystack))

printf("左括號多於右括號!\n");

else

printf("左右括號匹配正確!\n");

}void main(void)

"; //測試例子1。左右括號配對次序不正確

char b = "(()))abc"; //測試例子2。右括號多於左括號

char c = "(()()abc"; //測試例子3。左括號多於右括號

char d = "(())abc"; //測試例子4。左右括號匹配正確

int n1 = strlen(a);

int n2 = strlen(b);

int n3 = strlen(c);

int n4 = strlen(d);

expiscorrect(a, n1);

expiscorrect(b, n2);

expiscorrect(c, n3);

expiscorrect(d, n4);

}二者放於同一目錄下即可

2樓:

貼**啊, 截圖上來不好幫你試

求解釋這段C語言左移程式,求這段C語言的解釋 求詳細

你這個 太古老了吧 引數列表 還是這種形式 求這段c語言的解釋 求詳細 80 找你還真不容易,剛才的程式錯了,改了,你看看!include define uint unsigned intvoid delay ms uint uitime void delay ms uint uitime void...

這段c語言為什麼答案是

找出最大數所在的行和列以及最大數的值 最大數為12,在2行1列 int m a 0 0 m的初值為a 0 0 即1,if a i j m 這句話是把a i j 與m的值進行比較,如果大於m的值,則把a i j 值給m,把行和列給ii和jj,所以m中為最大值,ii和jj為最大值所在的行和列,輸出結果就...

問一段程式的意思,這段c語言程式代表什麼意思,輸出是什麼結果?求解答。

function過程 過程名onevent 這個過程呼叫了兩個引數event,arg outputlogmessage顯示內容。程式的內容是 定義了一個名為onevent的函式 這個函式是用來輸出event和arg的 以字串的形式輸出 api程式拉 一個為了鍵盤對映的程式拉 有了他才能工作哦 這段c...