習題3 8 符號配對 20分

2021-10-01 13:08:18 字數 2339 閱讀 9654

請編寫程式檢查c語言源程式中下列符號是否配對:/**/()[]

輸入為乙個c語言源程式。當讀到某一行中只有乙個句點.和乙個回車的時候,標誌著輸入結束。程式中需要檢查配對的符號不超過100個。

首先,如果所有符號配對正確,則在第一行中輸出yes,否則輸出no。然後在第二行中指出第乙個不配對的符號:如果缺少左符號,則輸出?-右符號;如果缺少右符號,則輸出左符號-?

void test()

.

no

/*-?

void test()

].

no

?-]

void test()

.

yes
#include

#include

#define maxsize 1003

typedef char elementtype;

typedef struct node *stack;

struct node';

ch1['<'] = '>';

for(i=0;;i++)

gets(ch);

if(ch[0] == '.' && ch[1] == '\0')

break;

for(j=0;ch[j]!='\0';j++)

if(ch[j] == '('||ch[j] == ')' || ch[j] == '' || ch[j] == '['|| ch[j] == ']')

ch2[k++] = ch[j];

else if(ch[j] == '/' && ch[j+1] == '*')

ch2[k++] = '<';

j++;

else if(ch[j] == '*' && ch[j+1] == '/')

ch2[k++] = '>';

j++;

int flag = 1;

for(i=0;iif(ch2[i] == '[' || ch2[i] == '' || ch2[i] == ')' || ch2[i] == '>')

if(s->top != -1 && ch1[s->ch[s->top]] == ch2[i])

s->top--;

else

printf("no\n");

if(s->top == -1)

if(ch2[i] == ')')

printf("?-)");

else if(ch2[i] == '}')

printf("?-}");

else if(ch2[i] == ']')

printf("?-]");

else if(ch2[i] == '>')

printf("?-*/");

else if(ch1[s->ch[s->top]] != ch2[i])

if(s->ch[s->top] == '(')

printf("(-?");

else if(s->ch[s->top] == '[')

printf("[-?");

else if(s->ch[s->top] == '{')

printf("{-?");

else if(s->ch[s->top] == '<')

printf("/*-?");

flag = 0;

break;

if(flag == 1&&s->top == -1)

printf("yes");

else if(flag == 1&&s->top!=1)

printf("no\n");

if(s->ch[s->top] == '(')

printf("(-?");

else if(s->ch[s->top] == '[')

printf("[-?");

else if(s->ch[s->top] == '{')

printf("{-?");

else if(s->ch[s->top] == '<')

printf("/*-?");

return 0;

奧力給沒毛病!!!

奧力給沒毛病!!!

奧力給沒毛病!!!

習題3 8 符號配對 20分

思路 順序棧 1.首先定義棧的結構體,寫棧的出棧,入棧,得棧頂元素 和棧的初始化 2.寫符號匹配的函式 3.對於 的處理 include define maxsize 100 struct stack typedef struct stack seqstack int push seqstack s...

習題3 8 符號配對 20 分

請編寫程式檢查c語言源程式中下列符號是否配對 與 與 與 輸入格式 輸入為乙個c語言源程式。當讀到某一行中只有乙個句點.和乙個回車的時候,標誌著輸入結束。程式中需要檢查配對的符號不超過100個。輸出格式 首先,如果所有符號配對正確,則在第一行中輸出yes,否則輸出no。然後在第二行中指出第乙個不配對...

習題3 8 符號配對 20 分

請編寫程式檢查c語言源程式中下列符號是否配對 與 與 與 輸入為乙個c語言源程式。當讀到某一行中只有乙個句點.和乙個回車的時候,標誌著輸入結束。程式中需要檢查配對的符號不超過100個。首先,如果所有符號配對正確,則在第一行中輸出yes,否則輸出no。然後在第二行中指出第乙個不配對的符號 如果缺少左符...