processed:
1) end of array element
2) empty case
3) singleton case
#include <stdio.h> int main() { int input[] = {1,1,1,1,2,2,2,3,3,4}; if (sizeof(input) == 0) return 0; int prev = input[0]; int count = 1; int i; int ARRAYSIZE = sizeof(input) / sizeof(int); for (i = 1; i < ARRAYSIZE; i++) { if (input[i] == prev) { count++; } else { printf("%d=%d ", prev, count); prev = input[i]; count = 1; } } printf("%d=%d\n", prev, count); return 0; }
and test cases:
when input is {} ----------------------------------- jianlin@ubuntu :~$ gcc try.c jianlin@ubuntu :~$ ./a.out when input is {123} ----------------------------------- jianlin@ubuntu :~$ gcc try.c jianlin@ubuntu :~$ ./a.out 123=1 when input is {1,123} ----------------------------------- jianlin@ubuntu :~$ gcc try.c jianlin@ubuntu :~$ ./a.out 1=1 123=1 when input is {1,1,1,1,2,2,2,3,3,4} ----------------------------------- jianlin@ubuntu :~$ gcc try.c jianlin@ubuntu :~$ ./a.out 1=4 2=3 3=2 4=1 when input is {1,1,1,1,2,2,2,3,3,4,4} ----------------------------------- jianlin@ubuntu :~$ gcc try.c jianlin@ubuntu :~$ ./a.out 1=4 2=3 3=2 4=2
ε€ͺζ₯΅ θ
η‘ζ₯΅ θ η
source share