调用函数求一元二次方程的根。我有23个错误。要炸。有哪位大神有种子可以帮

共有 3357 人关注过本帖
标题:用函数调用求一元二次方程的根,哪位高手帮忙看看,为什么程序能运行却总是 ...
等 级:新手上路
结帖率:100%
&&已结贴√
&&问题点数:20&&回复次数:4&&&
用函数调用求一元二次方程的根,哪位高手帮忙看看,为什么程序能运行却总是得不到正确的答案啊
#include&stdio.h&
#include&math.h&
float x1,x2,a,b,c,p,q,
void main()
&&& float ans_1(float a,float b);
&&& float ans_2(float a,float b);
&&& float ans_3(float a,float b);
&&& printf(&请分别输入三个系数a,b,c\n&);
&&& scanf(&%d,%d,%d&,&a,&b,&c);
&&& disc=b*b-4*a*c;
&&& if(a==0)
&&&&&&&&printf(&x=%.2f&,-c/b);
&&& else if(a==0&&b==0)
&&&&&&&&printf(&该方程无解\n&);
&&& else if(disc&0)
&&&&&&&&ans_1(a,b);
&&&&&&&&printf(&x1=%.2f,x.22=%f\n&,x1,x2);
&&& else if(disc==0)
&&&&&&&&ans_2(a,b);
&&&&&&&&printf(&x1=x2=%.2f&,x1);
&&& else if(disc&0)
&&&&&&&&ans_3(a,b);
&&& printf(&x1=%.2f+%.2fi\tx2=%.2f-%.2fi\n&,p,q,p,q);
float ans_1(float a,float b)
&&& x1=(-b+sqrt(disc))/(2*a);
&&& x2=(-b-sqrt(disc))/(2*a);
&&& return ans_1(a,b);
float ans_2(float a,float b)
&&& x1=x2=-b/(2*a);
&&& return ans_2(a,b);
float ans_3(float a,float b)
&&& p=-b/(2*a);
&&& q=sqrt(-disc)/(2*a);
&&& return ans_3(a,b);
搜索更多相关主题的帖子:
来 自:四川
等 级:蝙蝠侠
帖 子:179
专家分:760
&&得分:20&
错的很多 很离谱的哈&&改了改 忘君给分啊程序代码:#include&stdio.h&
#include&math.h&&&&&&&&&&&&&&&//sqrt()函数返回的是double
#include&stdlib.h&&&&&&&&&&&&&//exit()需要;
&&double x1,x2,a,b,c,p,q,
&&double ansx1(double ,double ); //求x1
&&double ansx2(double ,double );//求x2
&&void main()
&&&&&printf(&请分别输入三个系数a,b,c\n&);
&&&&&scanf(&%lf%lf%lf&,&a,&b,&c);&&& //没有加分号 还有是%lf不是%d;
&&&&&disc=(b*b-<font color=#*a*c);
&&&&&if(a==<font color=#&&b!=<font color=#)
&&&&&{&&&&&&&&&&&&&&&&&&&&&&&//注意if else if 的用法!
&&&&&&&&printf(&x=%.2lf&,(-c/b));
&&&&&&&&exit(<font color=#);
&&&&&else if(a==<font color=#&&b==<font color=#)
&&&&&&&&printf(&该方程无解\n&);
&&&&&&&&exit(<font color=#);
&&&&&if(disc&<font color=#.0)
&&&&&&&&&x1=ansx1(a,b);
&&&&&&&&&x2=ansx2(a,b);
&&&&&&&&&printf(&<font color=#=%.2lf,x.22=%.2lf\n&,x1,x2);
&&&&&else if(disc==<font color=#.0)
&&&&&&&&&x1=ansx1(a,b);
&&&&&&&&&printf(&<font color=#=x2=%.2lf&,x1);
&&&&&else if(disc&<font color=#.0)
&&&&&printf(&方程无正根!&);
&double ansx1(double a,double b)
&&&&&return ((-b+sqrt(disc))/(<font color=#*a));
&&double ansx2(double a,double b)
&&&&&return ((-b-sqrt(disc))/(<font color=#*a));
等 级:新手上路
回复 2楼 非死亡!
谢谢了 我是新手 还有很多不懂~ 可以帮忙再改下么~因为要求当(b^2-4*a*c&0)也要有根输出的
等 级:新手上路
程序代码:#include&stdio.h&
#include&math.h&
ans_1(float *a,float *b,float *disc);
ans_2(float *a,float *b,float *disc);
ans_3(float *a,float *b,float *disc);
static float p,q,x1,x2;
void main()
&&& float a,b,c,
&&& printf(&请分别输入三个系数a,b,c\n&);
&&& scanf(&%f%f%f&,&a,&b,&c);
&&& disc=b*b-<font color=#*a*c;
&&& if(a==<font color=#&&b!=<font color=#)
&&&&&&&&printf(&x=%.2f&,-c/b);
&&& else if(a==<font color=#&&b==<font color=#)
&&&&&&&&printf(&该方程无解\n&);
&&& else if(disc&<font color=#)
&&&&&&&&ans_1(&a,&b,&disc);
&&&&&&&&printf(&<font color=#=%.2f,x2=%.2f\n&,x1,x2);
&&& else if(disc==<font color=#)
&&&&&&&&ans_2(&a,&b,&disc);
&&&&&&&&printf(&<font color=#=x2=%.2f&,x1);
&&& else if(disc&<font color=#)
&&&&&&&&ans_3(&a,&b,&disc);
&&&&&&&&printf(&<font color=#=%.2f+%.2fi\tx2=%.2f-%.2fi\n&,p,q,p,q);
ans_1(float *a,float *b,float *disc)
&&& x1=(-*b+sqrt(*disc))/(<font color=#**a);
&&& x2=(-*b-sqrt(*disc))/(<font color=#**a);
ans_2(float *a,float *b,float *disc)
&&& x1=x2=-*b/(<font color=#**a);
ans_3(float *a,float *b,float *disc)
&&& p=-*b/(<font color=#**a);
&&& q=sqrt(-*disc)/(<font color=#**a);
} 不知道合理不合理...反正调试出结果了...
等 级:贵宾
威 望:304
帖 子:25793
专家分:48814
自己觉得这个程序有什么需要改进的?
授人以渔,不授人以鱼。
版权所有,并保留所有权利。
Powered by , Processed in 0.025115 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights ReservedC++练习题:求一元二次方程的根
题目要求:总时间限制:&1000ms&内存限制:&65536kB描述利用公式x1 = (-b &#43; sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4*a*c))/(2*a)求一元二次方程ax2&#43; bx &#43; c =0的根,其中a不等于0。输入输入一行,包含三个浮点数a, b, c(它们之间以一个空&#26684;分开),分别表示方程ax2&&#43; bx &#43; c =0的系数。输出输出一行,表示方程的解。若b2&= 4 * a * c,则两个实根相等,则输出形式为:x1=x2=...。若b2&& 4 * a * c,则两个实根不等,则输出形式为:x1=...;x2 = ...,其中x1&x2。若b2&& 4 * a * c,则有两个虚根,则输出:x1=实部&#43;虚部i; x2=实部-虚部i,即x1的虚部系数大于等于x2的虚部系数,实部为0时不可省略。实部 = -b / (2*a), 虚部 = sqrt(4*a*c-b*b) / (2*a)所有实数部分要求精确到小数点后5位,数字、符号之间没有空&#26684;。样例输入样例输入11.0 2.0 8.0样例输入21 0 1样例输出样例输出1x1=-1.0.64575i;x2=-1.75i样例输出2x1=0.0.00000i;x2=0.00i#include &cstdio&#include &iostream&#include &cmath&int main() { double a,b,c,d; double x1,x2; double m,n;
double esp=pow(10,-7); scanf(&%lf%lf%lf&,&a,&b,&c); d=b*b-4*a*c; if(d==0||d&0) {
x1=x2=(-b+sqrt(d))/(2*a);
printf(&x1=x2=%.5lf/n&,x1,x2);
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf(&x1=%.5x2=%.5lf/n&,x1,x2);
} } else {
m=-b/(2*a)+
n=sqrt(-d)/(2*a);
printf(&x1=%.5lf+%.5x2=%.5lf-%.5lfi/n&,m,n,m,n);
return 0;}编程技巧与注意事项:1.浮点型的程序定义时尽量使用double,因为float型容易精读不够;2.本题的错误输出是-0.000,为了避免这种情况可以加一个小&#20540;eps。要保留小数点后n位,eps=10的-(n&#43;2)次方3.次方函数pow(double a,double b) eg:10的-7次方即 pow(10,-7)
最新教程周点击榜
微信扫一扫二次函数与一元二次方程教学反思
二次函数与一元二次方程教学反思
二次函数与一元二次方程教学反思
反思一:二次函数与一元二次方程
1、常态课,没有太多的做作。没有制作课件。但若是把要让学生回答的各种性语言,制作成PPT。若用上这种课件,效果应当会更好一些。
2、在一个班讲,变成了两个班合班上。造成我展示中等生学习情况的不太明显。原第一节课,我是要设计板书和教学环节。可是,因为语文老师不在,我只好合班上课,给学生讲解二次函数的应用题。没有时间多考虑我第二节的公开课了。
3、课越想,越复杂。这一点可能与上面的矛盾,但还是想把自己的感觉说出来。因为要公开,因为要让别人来看我的课,星期六日,我又在脑子中过了几次教学环节,重点是总结二次函数与一元二次方程的关系,难点是当二次函数与x轴的有交点时,交点的横坐标等于令y=0得一元二次方程的根。
4、越俎代庖的地方还比较多,即:能让学生自己处理的地方,没有让学生来处理。本节课只让8个学生回答了问题。从观念上说,我还是不相信学生,认为学生没有自我教育的能力。第一个地方:让魏彩华、李鹏、郭伟,解三个方程,魏彩华忘了公式了,我赶快板书了公式。实际上,我可以让优生给予帮助,而我却越俎代庖了。第二个地方:总结一元二次方程的根有____种情况时,我怕学生忘了,不会写。更怕公开课怕丢人,也为了节约时间,没有先问学生,就顺手标出①②③。实际上这也是另一种形式的丢丑。今后应相信学生,毕竟学习是他们自己的事。第三个地方:学生用几何画板画三个函数时,曹亮一个,魏彩华则画了两个。我原来设计的应当是三个学生。我为了省事儿,就让一个学生做了两个。没有给哪些会画的差生任何机会。
5、语言的规范、简洁与手语的准确到位还有待提高。在总结一元二次方程解法时,我临时没计了一个问题,&解一元二次方程________法最好。&显然这是错误的表达,不成熟。应改正:&一元二次方程的解法有哪些?你喜欢哪一种,为什么?&
6、出现了一次较为成功的教学机智。在总结三个函数与x轴交点的情况时。我写了第一个范式,让张晓青填空。和其他学生讨论这个问题。后来派刘彦涵第二个,郭伟第三个。这两个学生则出现了错误,第一个学生把与x轴的交点、与y轴的交点,给混淆了。第二个学生把方程的无解,直接抄到了函数中,说无解。我抓住了这两点,即时讲解了本节的难点,这样也就较为容易的突破了它,又补充了求函数与y轴的交点的情况,算是一种延伸。
反思二:二次函数与一元二次方程教学反思
本节主要内容是用函数的观念看一元二次方程,探讨二次函数与一元二次方程的关系。教材从一次函数与一元一次方程的关系入手,通过类比引出二次函数与一元二次方程之间的关系问题,并结合一个具体的实例讨论了一元二次方程的实根与二次函数图象之间的联系,然后介绍了用图象法求一元二次方程近似解的过程。这一节是反映函数与方程这两个重要数学概念之间的联系的内容。
由于九年级学生已经具备一定的抽象思维能力,再者,在八年级时已经学习了一次函数与一元一次方程的关系,因而,采用类比的方法在学生预习自学的基础上放手让学生大胆地猜想、交流,分组合作,同时设定一定的问题环境来引导学生的探究过程,最后在老师的释疑、归纳、拓展、总结的过程中结束本节课的教学。在知识掌握上,学生对二次函数的图象及其性质和一元二次方程的解的情况都有所了解,对于本节所要学习的二次函数与一元二次方程之间的关系利用类比的方法让学生在自学的基础上进行交流合作学习应该不是难题。本节课的知识障碍,本节课的主要目的在于建立二次函数与一元二次方程之间的联系,渗透数形结合的思想,而不仅仅是利用函数的图象求一元二次方程的近似解。
总之,在教学过程中,我始终遵循着&有效的数学学习活动不能单独地依赖模仿与记忆,动手实践、自主探索与合作交流是学习数学的重要方式。&这一《新课程标准》的精神,注意发挥学生的主体作用,让学生通过自主探究、合作学习来主动发现问题、提出问题、解决问题,实现师生互动,通过这样的教学实践取得了一定的教学效果,我再次认识到教师不仅要教给学生知识,更要培养学生良好的数学素养和学习习惯,让学生学会学习,使他们能够在独立思考与合作学习交流中解决学习中的问题。
反思三:二次函数与一元二次方程教学反思
《6.3二次函数与一元二次函数》的第一课时,主要是用方程的方法研究二次函数图像与x轴交点的个数及交点的求法问题。简而言之,就是借助数形结合的方法解决问题,这是本节课的难点。一方面学生要能够根据二次函数y=ax2+bx+c(a&0)图像得到一元二次方程ax2+bx+c=0(a&0)的根,即基本的读图能力;另一方面要能够根据一元二次方程ax2+bx+c=0(a&0)来判断二次函数y=ax2+bx+c(a&0)图像与x轴交点的个数,即会依据条件画图的能力。
这两方面对于函数知识的学习都尤其重要,所以我将此作为本节课的重要任务,渗透在探究二次函数与一元二次方程的关系的过程中,并通过训练使学生进一步理解数形结合的思想,掌握运用的方法。作为新授课,尤其要注重知识生成过程的设计。
数学课程标准指出:&学生的数学学习内容应当是现实的,有意义的,富有挑战性的,这些内容有利于学生主动地进行观察、实验、猜测、验证、推理与交流等数学活动。&对于教材的内容不能全盘复制,而应该以学生的现实生活为背景,已有的知识积累、学习经验和思维方式为基础,随着课堂活动的不断深入而逐步形成的。因此,本节课的教学中,我借助学生已有的判断一元二次方程ax2+bx+c=0根的情况(a&0)和二次函数y=ax2+bx+c(a&0)图象性质的知识基础,将图象与x轴交点的坐标,转化为已知函数值为零,求自变量的值的问题,即解一元二次方程。由&图&过渡到&数&,直观形象,学生易于理解。通过学生自己的思维方式进行自主探索、交流,去发现二次函数y=ax2+bx+c(a&0)图像与x轴交点的个数和一元二次方程ax2+bx+c=0(a&0)的根的情况的关系,能够实现课堂学习的自主化,调动学生深层思维的思考,让学生在&再创造&中学习新知,有利于知识的生成,提高课堂的教学效果,体现新课改中将学生作为课堂的主体、学习的主人的教育教学理念。知识生成过程中,教师做好课堂的引导者和组织者,适时、科学的进行启发、点拨。这就需要认真研读教材,设计合理有效的问题或是问题串,帮助学生&再创造&。
问题的设计要注意前后的呼应和连贯。比如本节课的知识生成是:直接借助根的判别式b2-4ac,来判断二次函数y=ax2+bx+c(a&0)的图象与x轴的交点的情况。这就需要在讲解图象与x轴交点的横坐标即是对应一元二次方程的根后,设计以下的问题有效过渡:(1)二次函数y=ax2+bx+c(a&0)的图象与x轴的交点有几种情况?(2)一元二次方程ax2+bx+c=0(a&0)的根有几种情况,借助什么方法来判断呢?这就为后续的归纳做了有效的铺垫,使得新知的生成水到渠成。本节课,在引入问题的设计中做的不够充分,知识的生成没能有效呼应,没有达到预设的课堂效果。我要在以后的课堂教学中,加强对教材的研读,合理把握重难点,在情景引入和知识生成的问题设计上多下功夫,力争使自己的教育教学水平有新的突破。用c语言求一元二次方程时总是显示有一个error,求解-学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
用c语言求一元二次方程时总是显示有一个error,求解
来源:互联网 发表时间: 17:34:33 责任编辑:李志喜字体:
为了帮助网友解决“用c语言求一元二次方程时总是显示有一个error,求解”相关的问题,学网通过互联网对“用c语言求一元二次方程时总是显示有一个error,求解”相关的解决方案进行了整理,用户详细问题包括:
#include &stdio.h&
#include &math.h&
int main()
int a,b,c;
double x,x1,x2;
scanf(&%d%d%d&,&a,&b,&c);
printf(&Input error!\n&);
printf(&x=%.6lf\n&,-c/b);
if (b*b-4*a...
n&#include & printf(&n&b);;math,x2;;.h&gt,(-b+sqrt(b*b-4*a*c))/ if(a==0) { if(b==0) printf(&;(2*a)),c.6lf&#92.6lf&#92; } return 0;,x1;int main(){ int a,&c);x1=%,b;(2*a));n&quot!&#92;n& else
printf(&quot,(-b+sqrt(4*a*c-b*b))&#47.6lf&#92;%d%d%d&,-b/;x=%; else if(b*b-4*a*c&gt#include &lt,&b;x1=%;n&n&n&quot.6lfi&#92;x1=x2=%; scanf(& } else
if (b*b-4*a*c==0) printf(&quot,(-b-sqrt(4*a*c-b*b))/0) printf(&Ix1=%,-c/ printf(&); else
printf(&x2=%;(2*a)).6lfi&#92;(2*a)).6f&#92,(-b-sqrt(b*b-4*a*c))/(2*a)),&a.h&gt
,具体解决方案如下:解决方案1:;x1=%,x2;x2=%;x1=%,(-b-sqrt(4*a*c-b*b))/ else { if(b*b-4*a*c&n&(2*a));x1=x2=%,(-b+sqrt(b*b-4*a*c))&#47,x1;.6lfi&#92;x1=%;(2*a));n&quot,(-b-sqrt(b*b-4*a*c))/ printf(&quot.6lfi&#92;0) { printf(& }每个else 要与最近的if 对应 你有的对应的不对 比如【22】行 多用花括号 括起来还有你定义的double 型的变量 【n&(2*a));(2*a));】 没有参与运算;n&quot,-b/ } else printf(&;,(-b+sqrt(4*a*c-b*b))&#47.6lf&#92.6lf&#92;n& } printf(&quot{ if (b*b-4*a*c==0) printf(&(2*a));.6f&#92解决方案2:
可以把%d%d%d变成%d %d %d或%d,应该是scan输入的问题吧,直接用它们进行四则运算。如果是那个“input error”a,%d的形式试试。不知道你说的error是不是指结果不对,结果应该是一个整数,%d,基本跟这个有关了,如果是,而不是浮点数,c都是整型变量,b,并按照相对的格式输入
2个回答3个回答4个回答5个回答2个回答4个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答
相关文章:
最新添加资讯
24小时热门资讯
Copyright &#169; 2004- All Rights Reserved. 学网 版权所有
京ICP备号-1 京公网安备02号}

我要回帖

更多关于 民诉司考哪位大神 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信