記憶クラス、通用範囲の練習問題

呼び出された回数を返す関数

  仕様

  1. プログラムの実行開始から始めて、呼び出された回数を数える
  2. 戻り値としてその値を返す
#include <stdio.h>

main()
{
	int     ncc();
	int	i;

	for( i = 1; i <= 10 ; i++ )
		printf("%2d: cnn() = %d\n", i, ncc() );
}

/* 呼び出された回数を数え返す関数 */
int ncc()
{
	int	counter;

	return( ++counter );
}
/* end of ncc0.c */

集合カウンタ関数

  仕様

  1. 引数で指定したカウンタをカウントアップし、
  2. 戻り値として指定されたカウンタの値を返す
  3. カウンタの個数はCNUMとし、例えば、以下の様に定義しておく
#include <stdio.h>
#define	CNUM	5

main()
{
	int     nccs( int c );
	int	i, j;

	for( i = 1; i <= 10 ; i++ )
		for( j = 0; j < CNUM; j++ )
			printf("%2d: nccs(%d) = %d\n", i, j, nccs(j) );
}

/* 集合カウンタ関数 */
int nccs( int c )
{
	int	counter[CNUM];

	if( 0 <= c && c < CNUM )
		return( ++counter[c] );
	else
		return( 0 );
}
/* end of nccs0.c */