#include <stdio.h> void cotTime(); main() { cotTime(); } void cotTime() { int c, i, nwhite, nother, ndigit[10]; nwhite = nother = 0; for(i=0;i<10;i++) { ndigit[i] = 0; } while((c = getchar()) != EOF) { switch(c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': /*一种哈希的思想,从观察数组元素值为多少的方法中确定某一数字出现的次数 可以演变为一种较快地去重算法,不用先排序后去重,牺牲了空间性能,但是提高了时间性能*/ ndigit[c-'0'] += 1; break; case ' ': case '/t': case '/n': nwhite++; break; default: nother++; break; } } printf("digits = "); for(i=0;i<10;i++) { printf(" %d",ndigit[i]); } printf(", white space = %d, other = %d/n", nwhite, nother); return 0; }