#include <stdio.h>
#include <stdlib.h>

#define MAX 255

struct freq {int ch;int count;};

struct freq f[MAX];
int fp;

incFreq(int ch)
{  int i;
   i=0;
   while(i<fp)
    if(f[i].ch==ch)
    {  f[i].count = f[i].count+1;
       return;
    }
    else
     i = i+1;
   if(fp==MAX)
   {  printf("more than %d different characters\n",MAX);
      exit(0);
   }
   f[fp].ch = ch;
   f[fp].count = 1;
   fp = fp+1;
}

showFreq()
{  int i;
   i = 0;
   while(i<fp)
   {  printf("%c : %d\n",f[i].ch,f[i].count);
      i = i+1;
   }
}

main(int argc,char ** argv)
{  int ch;
   FILE * fin;
   if((fin=fopen(argv[1],"r"))==NULL)
   {  printf("can't open %s\n",argv[1]);
      exit(0);
   }
   fp = 0;
   ch = getc(fin);
   while(ch!=EOF)
   {  incFreq(ch);
      ch = getc(fin);
   }
   fclose(fin);
   showFreq();
}
