我正在C中執行乘法和加法運算,並且得到錯誤的結果。C中的意外輸出浮點乘法
我執行以下操作:
#include <stdio.h>
#include <strlib.h>
#include <math.h>
int main()
{
float** fpimag;
float** fpreal;
// Some code to assign fpimag and fpreal
// fpimag and fpreal are two dimensional arrays that are
// passed by reference to some functions to assign data to them
allocatememory(&fpimag,&fpreal);
storedata(&fpimag,&fpreal);
autofunction(&fpimag,&fpreal);
} // main()
void autofunction(float*** fpimag,float***fpreal) {
float expreal;
float expimag;
expreal = cos((*afph_correct)[row][column]);
expimag = sin((*afph_correct)[row][column]);
(*fpimag)[row][column] = (*fpimag)[row][column] * expreal + (*fpreal)[row][column] * expimag;
printf("Operation looks like this\n");
printf("%f*%f + %f*%f\n",(*fpimag)[row][column],expreal,(*fpreal)[row][column],expimag);
printf("The value is %f\n",(*fpimag)[row][column]);
} // autofunction
這是輸出我得到:
Operation looks like this
-0.003095*-0.431162 + 0.000027*-0.902275
The value is 0.003865
然而正確的答案應該是:
0.0013101
謝謝!
您需要發佈代碼的相關部分。 I.E.您正在打印的部分... – 2011-05-13 05:25:58
K謝謝您的建議,我更新了我的問題以反映您的建議 – Veridian 2011-05-13 05:36:17
好的。現在好點了。你現在可以發佈你分配值的地方嗎? – 2011-05-13 05:41:27