Hatena::Groupgeneration1986

仮想化済み古代魚

 | 

2008-08-19

K&Rの課題1-24

15:00

ちょっとやっつけ臭いですが。左カッコ、右カッコの数を比較して閉じ忘れを判定します。


#include<stdio.h>

#define eq ==
#define MAX 6000

int count(char s[], char x);

int main(void)
{
	char	str[MAX];
	char	c;
	int	i;
	int	l, r;		//Left, Right カッコの左右の数
	
	while(i < MAX-1 && (str[i] = getchar()) != EOF)
		++i;

	++i;
	str[i] = '\0';
	
	//カッコの対応チェック
	l = count(str, '(');
	r = count(str, ')');
	
	if(l != r)
		printf("カッコの閉じ忘れ:");

	return 0;
}

int count(char s[], char x)
{
	int i;
	int tar;
	
	tar = i = 0;
	while(s[i] != '\0')
	{
		if (s[i] eq x)
			++tar;
	
		++i;
	}

	return tar;
}
トラックバック - http://generation1986.g.hatena.ne.jp/oldfish/20080819
 |