#include
int main()
{
int n,i,j;
double sum=0.0;
printf("请输入项数n:\n");
scanf("%d",&n);
if(n<0||n>1000)
printf("输入数字超出范围\n");
else
{
j=1;
for(i=1;i<=n;i++)
{
sum=sum+j*1.0/i; //是1.0
j=j*(-1);
}
printf("1-1/2+1/3-1/4+...+1/n=%f\n",sum);
}
return 0;
}
void mian()
{
float n,i,sum=0;
float sign=-1;
scanf("%d",&n);
if(n<0)
return ;
for(i=1;i
sign=-sign;
sum=sum+sign*1/i;
}
printf("sum=%d",sum);
getchar();
}
楼上的
s初值=0 s*=-1 明显等于零 最后加出来 各种零
#include
int main()
{
int cnt = 0;
int i = 0;
double result = 0;
printf("choose a number from 0 to 1000.\n")
scanf(" %d", &cnt);
if (cnt <= 0 || cnt >= 1000)
{
printf("you give me an invalid number:%d!, Goodbye!\n", cnt);
return -1;
}
printf("get your number:%d.\n", cnt);
for (i = 1; i <= cnt; i++)
{
if (i%2)
{
result += (1.0/i);
}
else
{
result -= (1.0/i);
}
}
printf("result:%lf.\n", result);
return 0;
}
#include
int main(int argc,char*argv[])
{
int n,i,s=0;
double sum=0;
scanf("%d",&n);
if(!(n>0&&n<1000))
return -1;
for(i=1;i<=n;++i)
{
sum+=(double)s/i;
s*=-1;
}
printf("1-1/2+1/3-1/4+...+1/n=%lf",sum);
return 0;
}