A库中有很多排101.12,208.32,210.11,338.91,428.54,620.10这样的数据
B库中有很多排101.10,210.00,428.55,529.06,620.11,720.11这样的数据
现在要找到A库中每排数据在B库最接近的排,请问怎么编呢?十分感谢!
定义二维数组AA[n1][m]和BB[n1][m];
A库AA[n1][m] B库BB[n1][m]
double tmpErr,minErr;
int i,j,k;
int minSer[n1];
for(i=0; i<n1;i++)
{
for(j=0; j<n2; j++)
{
minErr = 20000.0;
tmpErr = 0;
for(k=0; k<m; k++)
{
tmpErr += fabs(AA[i][k] - BB[j][k]);
if(tmpErr < minErr)
{
minErr = tmpErr;
minSer[i] = j;
}
}
}
}
程序最后查看一下minSer[数组就可以了。
不知道是不是这一个意思,还有B库是不是一维数组还是二维数组。
不清楚你用的是什么数据库 写了个sql的 其他数据库的话思想类似 不明白的可以加我QQ434317590
--获取A,B库所有数据一对一比较的绝对值
if OBJECT_ID('tempdb..#t1') is not NULL drop TABLE #t1
SELECT 列A,列B,abs(列A-列B) AS 比较列
INTO #t1
FROM A,B
ORDER BY abs(列A-列B)
--获取列A对应最小的比较值
if OBJECT_ID('tempdb..#t2') is not NULL drop TABLE #t2
SELECT 列A,min(比较列) AS 比较列
INTO #t2
FROM #t1
GROUP BY 列A
--根据列A和比较值匹配得到结果
SELECT a.列A,a.列B
FROM #t1 a,#t2 b
WHERE a.列A=b.列A AND a.比较列=b.比较列