题目要求
编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确的成对出现。
程序分析
如果首先输入的为’ } ',则此花括号不成对出现,如果读入的 ’ { ‘的数目与’ } '的数目相等时,则此时花括号成对出现,如果不等时则不成对出现。
核心代码
while ( ( a=getchar())!=EOF)
{
if ( '{' == a)
{
i++;
}
else if ('}' == a && 0 == i)
{
printf("花括号不成对出现。\n");
return 0;
}
else if ('}' == a && 0 != i)
{
i--;
}
}
全部代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=0;
char a=0;
printf ("请输入源代码:\n");
while ( ( a=getchar())!=EOF)
{
if ( '{' == a)
{
i++;
}
else if ('}' == a && 0 == i)
{
printf("花括号不成对出现。\n");
return 0;
}
else if ('}' == a && 0 != i)
{
i--;
}
}
if ( i>0 )
{
printf ("花括号不成对出现。\n");
}
else
{
printf ("花括号成对出现。\n");
}
system("pause");
return 0;
}
展示一下运行结果: