#include <stdio.h>
int main()
{
  int c;
  size_t count[10]={0};
  while( ( c = getchar() ) != EOF ) if( '0' <= c && c <= '9' ) ++count[ c - '0' ];
  for( c = '0' ; c <= '9' ; ++c ) printf( "'%c':%u " , c , count[ c - '0' ] );
  printf( "\n" );
  return 0;
}

'0'から'9'までの並びって保証されてなかったっけ?
あと、size_tをprintfで出すのは%uで大丈夫だっけ?