C语言编程。输入项数n(0<n<1000),计算数列1-1⼀2+1⼀3-1⼀4+.....+1⼀n 的和。

尽快吧,谢谢。
2025-05-29 23:35:35
推荐回答(4个)
回答1:

#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;
}

回答2:

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 明显等于零 最后加出来 各种零

回答3:

#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;
}

回答4:

#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;

}