指出幾個問題吧..
(1)double funcos(double e,double x);函數(shù)申明應該放在main函數(shù)外面;
(2)double funcos(double e,double x)函數(shù)里面的sum變量沒有初始化,item最好也初始化一下;
(3)double fact(int n)函數(shù)應該在main函數(shù)之前申明一遍,而且里面最好不要使用fact變量.(1)應該沒問題,這是使用聲明(2)改了,但是沒什么作用(3)這個fact()應該怎么壓到另一個函數(shù)里,就是不知道怎么用才分出來的(1)使用申明不要放在函數(shù)里面,放在main函數(shù)的前面. 比如 double funcos(double ,double ); double fact(int ); main() {...} double funcos(double e,double x){...} double fact(intn){...} (2)sum變量肯定是要初始化為0的. (3)fact函數(shù)里面不要把變量用為fact.換成其他的比如temp. 這是c++程序..你可以對比一下. #include
#include using namespace std; double funcos(double e,double x); double fact ( int ) ; int main() { double e,x,sq; cout << "Enter e,x:" ; cin >> e >> x ; sq=funcos(e,x);cout << "cos(" << x << ")=" << sq << endl ; return 0; }double funcos(double e,double x) { int flag=1,n=0; double item = 0 ,sum = 0 ; do{ item=flag*pow(x,2*n)/fact(2*n); sum+=item; n++; flag=-flag; }while((item/flag)>=e);return sum; } double fact(int n) { double tmp = 1.0; for(int i = 1 ; i <= n ;i ++) tmp=tmp*i;return tmp; }相應改了一下,執(zhí)行還是不對你試試我的程序 在vs2008上是可以運行的.