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;
}









....太牛了,beyondyf,你只分为两类啊,天啊。。佩服
