c++编程求1-1/2+1/3-......1/n,用while和do while做,哪里错了?

#include <iostream>
using namespace std;
int main()
{
int a,n;
float sum,sum1,sum2;
sum1=0,sum2=0,sum=0,a=0;
cin>>n;
while(a<=n)
{
if(a%2!=0)
sum1=sum1+(1.0/n);
else
sum2=sum2-(1.0/n);}
sum=sum1+sum2;
cout<<sum;

system("pause");
return 0;
}

第1个回答  2012-06-02
#include <iostream>
using namespace std;
int main()
{
int a,n;
float sum,sum1,sum2;
sum1=0,sum2=0,sum=0,a=1; //改过!改过!改过!改过!
cin>>n;
while(a<=n)
{
if(a%2!=0)
sum1=sum1+(1.0/a); //改过!改过!改过!改过!
else
sum2=sum2-(1.0/a);a++;} //改过!改过!改过!改过!
sum=sum1+sum2;
cout<<sum;

system("pause");
return 0;
}本回答被提问者采纳
第2个回答  2012-06-02
#include <iostream>
using namespace std;
int main()
{
int n,a;
float sum;
sum=0,a=0;
cin>>n;
while(a++<n)
{
if(a%2!=0)
sum=sum+(1.0/a);
else
sum=sum-(1.0/a);
}
cout<<sum;
system("pause");
return 0;
}
相似回答