请高人帮忙指点一下一道C语言程序题!
#include<stdio.h>#include<math.h>floatg(floatx){returnx*x-5*sin(x)-4;}floatroot(float...
#include <stdio.h>
#include <math.h>
float g(float x)
{ return x*x-5*sin(x)-4; }
float root(float a, float b, float eps, float(*f)(float))
{ float c;
while(c=(a+b)/2,fabs(f(c))>eps&&fabs(b-a)>=eps)
if(f(a)*f(c)<0) b=c; else a=c;
return c;
}
void main( )
{ // 此处起要求考生自己编制程序
float a=2,b=5,c,(*f)(float);
FILE *fp;
if(fp=fopen(“design.dat’, “w”))= =NULL)
{ printf(“Cannt open FILE”);
exit(0); }
f=g;
c=root(a,b,.le-5,f);
fprintf(fp, “%9.6f”,c);
fclose(fp);
}
float g(float x)
{ return x*x-5*sin(x)-4; }
float root(float a, float b, float eps, float(*f)(float))
{ float c;
while(c=(a+b)/2,fabs(f(c))>eps&&fabs(b-a)>=eps)
if(f(a)*f(c)<0) b=c; else a=c;
return c;
}
因为没学到函数,这一部分看不懂,马上要考试了,请详细地帮我解答一下,谢谢! 这里各个语句的作用,不甚感激!!! 展开
#include <math.h>
float g(float x)
{ return x*x-5*sin(x)-4; }
float root(float a, float b, float eps, float(*f)(float))
{ float c;
while(c=(a+b)/2,fabs(f(c))>eps&&fabs(b-a)>=eps)
if(f(a)*f(c)<0) b=c; else a=c;
return c;
}
void main( )
{ // 此处起要求考生自己编制程序
float a=2,b=5,c,(*f)(float);
FILE *fp;
if(fp=fopen(“design.dat’, “w”))= =NULL)
{ printf(“Cannt open FILE”);
exit(0); }
f=g;
c=root(a,b,.le-5,f);
fprintf(fp, “%9.6f”,c);
fclose(fp);
}
float g(float x)
{ return x*x-5*sin(x)-4; }
float root(float a, float b, float eps, float(*f)(float))
{ float c;
while(c=(a+b)/2,fabs(f(c))>eps&&fabs(b-a)>=eps)
if(f(a)*f(c)<0) b=c; else a=c;
return c;
}
因为没学到函数,这一部分看不懂,马上要考试了,请详细地帮我解答一下,谢谢! 这里各个语句的作用,不甚感激!!! 展开
2个回答
展开全部
//////////////////////////////////////////
// 我简单翻译一下,如果不明白的,点击我名字,我帮你在详细解答
//////////////////////////////////////////
#include <stdio.h> //头文件
#include <math.h> //引用头文件
float g(float x) //函数g) 其中有一个参数x浮点类型
{ return x*x-5*sin(x)-4; } //函数体
float root(float a, float b, float eps, float(*f)(float))
{ float c;
while(c=(a+b)/2,fabs(f(c))>eps&&fabs(b-a)>=eps)
if(f(a)*f(c)<0) b=c; else a=c;
return c;
}
void main( )
{ // 此处起要求考生自己编制程序
float a=2,b=5,c,(*f)(float); //浮点类型声明
FILE *fp; //什么文件指针
if(fp=fopen(“design.dat’, “w”))= =NULL)//如果打开文件design.dat
//用于写入失败
{ printf(“Cannt open FILE”); //打印出”无法打开文件“
exit(0); } //以错误推出程序
f=g; //把g赋值给f
c=root(a,b,.le-5,f); // 用root函数计算出值再
//赋值给变量c(注意C前面声
//明过了是浮点类型)
fprintf(fp, “%9.6f”,c); //打印出c的值,并且以前9
//后6位输出格式输出
fclose(fp); //关闭写入文件流
}
float g(float x) //方法g 返回浮点类型,有
//一个浮点类型的参数x
{ return x*x-5*sin(x)-4; } //返回公式计算结果
float root(float a, float b, float eps, float(*f)(float))
// 方法 root 有a,b eps, *f 几个参数都为浮点类型,最后一个
//是浮点指针
{ float c; //声明 浮点变量c
while(c=(a+b)/2,fabs(f(c))>eps&&fabs(b-a)>=eps)//循环计算
if(f(a)*f(c)<0) b=c; else a=c; //计算中使用的条件
return c; // 返回计算的c值
}
// 我简单翻译一下,如果不明白的,点击我名字,我帮你在详细解答
//////////////////////////////////////////
#include <stdio.h> //头文件
#include <math.h> //引用头文件
float g(float x) //函数g) 其中有一个参数x浮点类型
{ return x*x-5*sin(x)-4; } //函数体
float root(float a, float b, float eps, float(*f)(float))
{ float c;
while(c=(a+b)/2,fabs(f(c))>eps&&fabs(b-a)>=eps)
if(f(a)*f(c)<0) b=c; else a=c;
return c;
}
void main( )
{ // 此处起要求考生自己编制程序
float a=2,b=5,c,(*f)(float); //浮点类型声明
FILE *fp; //什么文件指针
if(fp=fopen(“design.dat’, “w”))= =NULL)//如果打开文件design.dat
//用于写入失败
{ printf(“Cannt open FILE”); //打印出”无法打开文件“
exit(0); } //以错误推出程序
f=g; //把g赋值给f
c=root(a,b,.le-5,f); // 用root函数计算出值再
//赋值给变量c(注意C前面声
//明过了是浮点类型)
fprintf(fp, “%9.6f”,c); //打印出c的值,并且以前9
//后6位输出格式输出
fclose(fp); //关闭写入文件流
}
float g(float x) //方法g 返回浮点类型,有
//一个浮点类型的参数x
{ return x*x-5*sin(x)-4; } //返回公式计算结果
float root(float a, float b, float eps, float(*f)(float))
// 方法 root 有a,b eps, *f 几个参数都为浮点类型,最后一个
//是浮点指针
{ float c; //声明 浮点变量c
while(c=(a+b)/2,fabs(f(c))>eps&&fabs(b-a)>=eps)//循环计算
if(f(a)*f(c)<0) b=c; else a=c; //计算中使用的条件
return c; // 返回计算的c值
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询