- 论坛徽章:
- 0
|
这是被网上讨论烂了的问题,我也来凑个热闹。
#include <stdio.h>
#include <math.h>
int main(void)
{
int n = 4;
int a[4] = {-1, 3, -5, 7};
int b[4] = {11, 13, 17, -19};
int i, j, k = 1;
int d0 = 0, d1, temp;
for(i=0; i<n; i++) {
d0 = d0 + a - b;
}
while(k > 0) {
k = 0;
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
d1 = d0 - 2*(a - b[j]);
if(abs(d1) < abs(d0)) {
temp = a;
a = b[j];
b[j] = temp;
d0 = d1;
k = 1;
break;
}
}
if(1 == k) {
break;
}
}
}
printf("d = %d", d0);
printf("\na = ");
for(i=0; i<n; i++) {
printf("%d ", a);
}
printf("\nb = ");
for(i=0; i<n; i++) {
printf("%d ", b);
}
return 0;
}
http://kan.weibo.com/con/3562687971904001 |
|