原代码是第一个,改为调用函数怎么弄,我这个为啥错了

原代码是第一个,改为调用函数怎么弄,我这个为啥错了

问题描述:


#include <stdio.h>
#include <stdlib.h>

int main()
{
    double sum = 0;
    int t = 1,i;

    for(i = 1; fabs(1.0/i) >= 0.0000001; i = i+2.0){
        sum = sum + (1.0/i)*t;
        t = t * (-1);
    }

    printf("%f",4.0*sum);
    return 0;
}


#include <stdio.h>
#include <stdlib.h>
double sum(double i,double t);

double sum(double i,double t)
{
    double sum = 0;;

    for(i; fabs(1.0/i) >= 0.0000001; i = i+2.0){
        double i=1,t=1;
        sum += (1.0/i)*t;
        t = t * (-1.0);
    }

    return sum;
}

int main()
{

    double cnt;
    cnt = 4 * sum(i,t);

    printf("%f",cnt);

    return 0;
}


因为两个原因:1、没有导入math.h头文件,导致fabs函数不能使用;2、main函数里面的i和t没有定义和赋值,导致调用sum出错。

代码修改如下:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double sum(double i,double t);
 
double sum(double i,double t)
{
    double sum = 0;;
 
    for(i; fabs(1.0/i) >= 0.0000001; i = i+2.0){
        double i=1,t=1;
        sum += (1.0/i)*t;
        t = t * (-1.0);
    }
 
    return sum;
}
 
int main()
{
 
    double cnt;
    double i = 2.0;
    double t = 3.0;
    cnt = 4 * sum(i,t);
 
    printf("%f",cnt);
 
    return 0;
}