有一道题是这样的.用公式"s/4=1-1/3+1/5-1/7......“求s的近似值,直到最后一项的绝对值不大于10的负8次方。程序如下。
没有通过编译。请问应该怎么样来修改。[code:1]
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int
main ()
{
double s = 0, x = 1;
long k = 1;
int sign = (-1);
cout << "this program will out put a sum" << endl;
while (fabs (x) > 1e-8)
{
s += x;
k + 2;
sign *= (-1);
x = sign / double (x);
}
s *= 4;
cout << "the sum is" << setiosflags (ios::
fixed) << setprecision (8) << s <<
endl;
}[/code:1]
还有一道题是这样的。
给定一整数m判断是否为素数,程序如下,但是没有通过编译。[code:1]
#include<iostream>
#include<cmath>
using namespace std;
int
main ()
{
long m;
int i;
cout << "please enter the number of m" << endl;
cin >> m;
long double sqrtm = sqrt (m);
for (i = 2; i <= sqrtm; i++)
if (m % i == 0)
break;
if (i > sqrtm)
cout << "the number is a prime" << m << endl;
else
cout << "the number is not a prime" << m << endl;
}[/code:1]
这两个程序都是照着书上面学着写的,但是不知道为什么不能够通过编译。
可以告诉我正确的应该怎么做吗。