C语言计算数列1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + …的前n项之和。提交学校OJ一直显示wrong answer

时间:2023-01-05 18:53:08
C语言计算数列1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + …的前n项之和。提交学校OJ一直显示wrong answerC语言计算数列1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + …的前n项之和。提交学校OJ一直显示wrong answer
#include<stdio.h>
int main()
{
long n;
while (scanf_s("%ld", &n) != -1)
{
double s = 0.0;
int i, a = 1;
for (i = 1; i <= 2 * n - 1; i += 2)
{
if (((i + 1) / 2) % 2 == 1)
s += 1.0 / i;
else
s -= 1.0 / i;
}
printf("%.5f", s);
}
return 0;
}

3 个解决方案

#1


边界条件
输入输出格式
……

#2


printf("%.5 lf", s);

printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。

#3


#include<stdio.h>

int main()
{
    long n;
    double s = 0.0;
    int i;

    while (scanf("%ld", &n) != -1)
    {
        s = 0.0;
        for (i = 1; i <= 2 * n - 1; i += 2)
        {
            if (((i + 1) / 2) % 2 == 1)
                s += 1.0 / i;
            else
                s -= 1.0 / i;
        }
        printf("%.5f\n", s);    /*加一个回车符*/
    }
    return 0;
}

是不是缺少一个回车符呢

#1


边界条件
输入输出格式
……

#2


printf("%.5 lf", s);

printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。

#3


#include<stdio.h>

int main()
{
    long n;
    double s = 0.0;
    int i;

    while (scanf("%ld", &n) != -1)
    {
        s = 0.0;
        for (i = 1; i <= 2 * n - 1; i += 2)
        {
            if (((i + 1) / 2) % 2 == 1)
                s += 1.0 / i;
            else
                s -= 1.0 / i;
        }
        printf("%.5f\n", s);    /*加一个回车符*/
    }
    return 0;
}

是不是缺少一个回车符呢