孤岛recwert 发表于 2020-11-24 14:28:38

c语言 数组

7-1 实验9_1_括号匹配 (100分)
任意给定一个字符串,字符串中包含除了空格、换行符之外的任意字符。你的任务是检测字符串中的小括号是否配对,即“(”与“)”是否配对。如字符串“((a+b)* (c+d))”中小括号是配对的,而“((a+b)*) c+d))”则不配对。
要求用数组做
程序运行效果:

Sample 1: ((a+b)*(c+d)) ↙

parentheses match!↙

Sample 2:

((a+b)*)c+d)) ↙

parentheses do not match!↙

输入格式:
一个长度不超过100的非空字符串,该字符串中不会出现空格、换行符。

输出格式:
见程序运行效果。

输入样例:
((a+b)*(c+d))
输出样例:
parentheses match!

jitianmoshen 发表于 2020-11-24 14:59:56

本帖最后由 jitianmoshen 于 2020-11-24 15:03 编辑

#include <stdio.h>
int main(void)
{
        char ch;       
        int i, count = 0;
        scanf("%s", ch);
        for (i = 0; ch != '\0'; i++)
        {
                if (ch == '(')
                        count++;
                else if (ch == ')')
                        count--;
                if (count < 0)                  // ‘)' 出现在 '('左边
                {
                        printf("不匹配!\n");
                        break;
                }
        }
        if (count > 0)
                printf("不匹配!\n");
        else if(count == 0)
                printf("匹配!\n");
        return 0;
}
页: [1]
查看完整版本: c语言 数组