原代码是第一个,改为调用函数怎么弄,我这个为啥错了
问题描述:
#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;
}