C/C++の宿題を片付けます 91代目
■ このスレッドは過去ログ倉庫に格納されています
0676デフォルトの名無しさん
2007/06/30(土) 17:09:15#include <stdio.h>
#define STACK 100
char stack[STACK];
const char left[] = "({[<";
const char right[] = ")}]>";
int main()
{
int c; char *p; char *s = stack;
while ((c=getchar()) != EOF) {
if ((p = strchr(left, c)) != NULL) {
*s++ = p - left;
if (s - stack > STACK) {
printf("Stack overflow\n");exit(1);
}
} else if ((p = strchr(right, c)) != NULL) {
s--;
if ((s - stack) < 0) {
printf("NG\n");exit(1);
}
if (*s != p - right) {
printf("NG\n");exit(1);
}
}
}
printf("OK\n");
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています