#include #include #define MAX 255 struct freq {int ch;int count;}; struct freq * f[MAX]; int fp; incFreq(int ch) { int i; i=0; while(ich==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] = (struct freq *)malloc(sizeof(struct freq)); f[fp]->ch = ch; f[fp]->count = 1; fp = fp+1; } showFreq() { int i; i = 0; while(ich,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(); }