c语言数列求和问题wrong anwser 80%

c语言数列求和求前n项和要求输入一个小于100的整数,如何保证输入的为整数?就比如我输入2它输出0.5000但是我输入2.5它还是输出0.5000怎么解决这个读取问题?

img

img


img

这是我的代码

img

这是题目

这么写,供参考:

#include <stdio.h>
int main()
{
    int n, i, a, b;
    double s = 0;
    scanf("%d", &n);
    for (i = 1, a = 1, b = 1; i <= n; i++) {
        if (i % 2 == 1)
            s += 1.0 * a / b;
        else
            s -= 1.0 * a / b;
        b += a;
        a = b - a;
    }
    printf("%.4f", s);
    return 0;
}

这个输入没有问题,算法题测试的数据集都是整数。只不过你在编译器上运行的时候你输入的是2.5

保证输入的整数这不是你应该操心的事
题目告诉你了输入的数据就都是整数,你就按整数来处理
你想保证不管输入什么都能处理,那你只能接收字符串了,然后再通过字符串判断里面放的到底是个什么