急需C程序处理数据,求高手帮忙解答啊
老板给了数据文件要求写C程序进行后处理,我是机械专业的,C语言就上学时学过还没学好。请各位帮忙了,谢谢各位了!文件格式如下:
#F A 1 1 1 3 3 2
#C number type mass x y z vx vy vz Epot eam_rho
#E
1390 0 63.546300 1.366122 3.274510 3.959495 -0.014555 0.021480 0.011286 -3.336130 0.983624
2075 0 63.546300 0.197795 4.925601 2.678359 0.015554 0.035225 0.028217 -3.354595 0.977031
3833 0 63.546300 4.796687 5.563218 3.726159 0.010010 -0.001101 0.048472 -3.379659 0.898155
232 0 63.546300 1.785678 0.692921 3.458947 -0.010475 -0.028170 -0.039203 -3.255102 0.907376
2417 0 63.546300 1.431713 3.511336 1.161916 -0.047983
....
....
n行
从第四行开始,第一列为原子序号,第4,5,6为原子3维x,y,z坐标。
1. 读入文件
2.对某个原子i(i应该从第一个被读到的原子开始吧?),计算它与其他所有原子之间的距离: |d|=sqrt[ (xi-xj)^2+(yi-yj)^2+(zi-zj)^2].
3.将计算到的间距按升序排列,并只取前12个,d1....d12
4.在上面12个原子中,与原子i距离最近的原子为d1(这个d1是向量d1=[(xi-x1),(yi-y1),(zi-z1)]),计算d1到其他11个原子的Dj=|d1+dj|^2,(dj也是向量) 令其中最小的Dj赋值为D1.
5. 扔掉d1和原子j.在剩下的10个原子中再找离原子i最近的,重复步骤4,计算出D2
6. 计算至12个原子都用完,此时有D1,D2...D6,
7. 对于原子i, 计算c=(D1+D2+D3+D4+D5+D6)/2/(d1^2+d2^2+.......+d12^3)
8. 按上述计算原子i+1的c
9. 输出原子序号,坐标及其c:
原子序号 x y z c
请各位帮忙了,谢谢各位了!
[ 本帖最后由 santan 于 2010-3-4 12:08 编辑 ]