Wo ye kan bu dong Ya!
这段代码只要修改宏即可改变元素范围,比如如果要求元素范围是1-10,那么将宏修改为10就可以解决。
程序代码:
#include<stdio.h> #define MAX_NUM 3 int cal(int * a, int n) { int c[MAX_NUM + 1] = {0}, ct = 0, cb = 0, i, j, k; for(i = 0; i < n; c[a[i++]]++); for(i = j = 0; i < n; j++) for(k = 0; k < c[j]; k++, i++) a[i] > j ? ct++ : a[i] < j ? cb++ : 0; return ct > cb ? ct : cb; } int main() { int a[1024], n, i; for(scanf("%d", &n), i = 0; i < n; scanf("%d", &a[i++])); printf("%d\n", cal(a, n)); return 0; }