- 论坛徽章:
- 0
|
原帖由 forrestgang 于 2006-11-13 00:56 发表
有两个数组a,b,大小都为n,数组元素的值任意,无序;
要求:通过交换a,b中的元素,使数组a元素的和与数组b元素的和之间的差最小
我写的一段,不知道对不对
#include<stdio.h>
int
sumb (int m[], int x)
{
int i;
int sum = 0;
for (i = 0; i < x; i++)
sum += m[ i ];
return sum;
}
main ()
{
int min;
int tmp;
int i;
int j;
int this;
int
a[3] =
{
1, 3, 3};
int
b[3] =
{
3, -1,9};
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
{
this = sumb (a,3) - sumb (b,3);
if(i==0&&j==0)
{
if(this < 0)
this = this * (-1);
min=this;
}
if(this<0)this=this*(-1);
if (this < min)
min = this;
else
{
tmp = a[ i ];
a[ i ] = b[ j ];
b[ j ] = tmp;
}
}
printf ("Min=%d\n", min);
}
[ 本帖最后由 zwylinux 于 2006-11-15 00:46 编辑 ] |
|