C语言关于if while do-while不能加分号

求下列试子的值:2/1+3/2+4/3+5/4+……+50/49。
注意:1)用三种方法:while,do-while,for语句编写。
2)用调用子函数编写,可结合上面三种循环中的任意一种循环。
3)在if语句、while语句,for语句中,表达式后面都不能加分号,而在do-while语句while后面必须加分号。
4)1/2=0,不是0.5,所以中间有一个强制类型转换。

供参考:

#include<stdio.h>
double fun(int n)
{
    int i=1;
    double s=0;
    while (i < n)
    {
        s += 1.0 * (i + 1) / i;
        i++;
    }
    return s;
}

double fun1(int n)
{
    int i = 1;
    double s = 0;
    do{
        s += 1.0 * (i + 1) / i;
        i++;
    } while (i < n);
    return s;
}

int main()
{
    int n = 50, i;
    double s = 0;
    for (i = 1; i < n; i++)
        s += 1.0 * (i + 1) / i;
    printf("s(2/1+3/2+4/3+5/4+……+50/49) = %f\n", s);
    printf("fun(%d)(2/1+3/2+4/3+5/4+……+50/49)=%f\n", n, fun(n));
    printf("fun1(%d)(2/1+3/2+4/3+5/4+……+50/49)=%f\n", n, fun1(n));
    return 0;
}