问题 B: 程序改错题

问题 B: 程序改错题

时间限制: 1 Sec  内存限制: 128 MB
提交: 684  解决: 157
[状态] [讨论版] [提交] [命题人:]
题目描述

修改下列程序中的错误,把修改过的函数一块提交。

//1.下面的函数实现根据整数m,计算公式的值: y=1+1/3+1/5+1/7+...+1/(2m-3),请修改其中的错误

double func1(int m)
{
    double y=1;
    int i;
    for(i=3; i<m; i++)
        y+=1.0/(2i-3);
    return(y);
}
//2.下面的函数把参数m每一位上为奇数的数依次取出,构成一个新数并返回。高位仍在高位,低位仍在低位。例如:当s中的数为:87653142时,t中的数为:7531。

long long func2(long long s)
{
    int d,t;
    long sl=1;
    t=0;
    while(s>0)
    {
        d=s%10;
        if(d%2==0)
        {
            t=d*sl+t;
            sl*=10;
        }
        s/=10;
    }
    return t;
}
//3.将八进制数组成的字符串换为十进制数并返回。如输入“127”,结果为87 
int func3(char s[])
{
    char *p;
    int n;
    p=s;
    n==0;
    while(*p=='\0')
    {
        n=n*8+*p-'0';
        p++;
    }
    return n;
}