我在代码中找不到逻辑错误。 整个事情在数学上是错误的吗? 还是部分正确?
float x,term,fx;
int i, nterms;
cin>>x>>nterms;
for(i=1;i<=nterms;i+=2){
term=1;
fact=1;
for(j=1;j<=i;j++){
term=term*x;
fact=fact*j;
}
sign=-1*sign;
fx+=sign*term/fact;
}
cout << fixed << showpoint;
cout << setprecision(6);
cout<<fx;
答案 0 :(得分:0)
我已逐步修复了您的代码,由于无法确定您要在代码中执行的操作,因此无法继续进行。如果您告诉我们它们是什么,我将可以修复此代码。
#include <iostream>
#include <iomanip>
#include <stdio.h>
int main() {
long double x,term,fx, fact;
int i, j, nterms;
int sign;
std::cin>>x>>nterms;
term=1;
fact=1;
sign=1;
fx = 0;
for(i=1;i<=nterms;i+=2){
for(j=1;j<=i;j++){
term=term*x;
fact=fact*j;
}
sign=-1*sign;
fx+=sign*term/fact;
}
std::cout << std::setprecision( 6 ) << fx << std::endl;
}
此处有一些说明:
似乎{strong> using namespace
已用于std
。 请谨慎使用,因为某些命名空间之间可能会发生冲突。这个page(法语)建议了两个用例。
a。导入符号一个:
using std::cout;
using std::endl;
b。仅在本地范围中使用它们(例如,在花括号中):
void a_function() {
// std will be imported only within this block
using namespace std;
cout << "hello there" << endl; // will work
}
声明变量,然后再使用它们。将我的答案与您的代码示例进行比较。