我写了一个函数equlibrium,它需要两个输入a(double)和i(int)。返回输出fEq。根据代码,当从主体调用时,函数应该在屏幕上输出fEq的值。但我没有在屏幕上获得输出。函数是否真的被调用?或者在调用参数时出现数据类型错误?请帮帮我。函数参数数据类型错误
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <sys/stat.h>
#include <string.h>
#include <dirent.h>
// define global variables
double w[3]= {2.0/3.0, 1.0/6.0, 1.0/6.0};
int nx=100;
int x, i;
double u[100],u0[100];
double fn[100][3];
double fEq,a;
//define function prototypes
equlibrium (double a,int i, double fEq);
// main program
int main(int argc, char **argv)
{
u[0] = 1.0e0;
u[nx] = 1.0e0;
i=0;
a = u[x];
equlibrium (a, i, fEq);
}
//function equlibrium
equlibrium (double a,int i, double fEq)
{
if(i=0)
{
fEq = (w[0]-1.0) * a;
printf("%lf\n", fEq);
}
else if(i=1)
{
fEq = (w[1] * a);
}
else
{
fEq = (w[2] * a);
}
return fEq;
}
所有如果必须使用'=='。例如'if(i == 0)'。 – LPs
您的代码存在几个问题,如果您在编译器中启用警告(并对它们采取行动!),则会发现大多数问题。 –
你用什么IDE来建立你的代码?如果你还没有一个,现在可以得到一个(NetBeans,Eclipse,CodeBlocks,MS Visual Studio等,都是免费的)。 IDE将允许您使用调试器;你可以在一行代码上设置一个断点,运行到该断点,检查变量的值,并逐行检查你的代码,看看它是如何执行的。这是解决所有这些问题的标准方法,而不仅仅是这个问题。 – Mawg