我需要把Fortran 77的代码翻译成C语言,我有大约90%的翻译,但我不懂Fortran的某些部分,例如,在Fortran中我有:DIMENSION COEF(3,3),EXPON(3,3)DATA COEF,EXPON/1.0D0,2*0.0D0,0.678914D0,0.430129D0,0.0D0, $ 0.444635D0,0.535328D0,0.154329D0,0.270950D0,2*0.0D0,0.151623D0, $ 0.851819D0,0.0D0,0.109818D0,0.405771D0,2.22766D0/
在这一部分中,我有一个长度为3的两个数组,因此,当我阅读数据文档时,我需要将每个值放入这两个数组中,这样我就有了C中的下一个代码块:
COEF[0][0] = 1.0;
COEF[0][1] = 2.0;
COEF[0][2] = 0.6789140;
COEF[1][0] = 0.4301290;
COEF[1][1] = 0.0;
COEF[1][2] = 0.4446350;
COEF[2][0] = 0.5353280;
COEF[2][1] = 0.1543290;
COEF[2][2] = 0.2709500;
EXPON[0][0] = 2.0;
EXPON[0][1] = 0.1516230;
EXPON[0][2] = 0.8518190;
EXPON[1][0] = 0.0;
EXPON[1][1] = 0.1098180;
EXPON[1][2] = 0.4057710;
EXPON[2][0] = 2.227660;
EXPON[2][1] = 0.0;
EXPON[2][2] = 0.0;
假设我需要将参数列表与值列表相关联,我只有16个值,但是两个数组之间有18个空格,那么最后两个空格会发生什么情况?除息的
最佳答案
原始数据语句中有18个值。
我相信你被弗朗西斯卡勒斯所说的多样性搞糊涂了
2*0表示:两个零。它不代表2.0,也不代表2x0。意思是:“两个零,来了!”
我想你需要这样的东西:
系数[0][1]=0.0;
系数[0][2]=0.0;
(以及EXPON中的2个零)
然后18个值将按预期排列,并且C数组中不会有任何未初始化的插槽。