求一元二次方程的根c语言
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求一元二次方程的根c语言相关的知识,希望对你有一定的参考价值。
参考技术Ac语言一元二次方程编程是#include <iostream> 。#include <cmath>。using namespace std。int main()。float a,b,c;float x1,x2; cin>a>>b>>c;float dlt=b*b-4*a*c;if(dlt>=0)x1=-b/2/a+sqrt(dlt)。/2/ax2=-b/2/a-sqrt(dlt)/2/a。
形如x=p或(nx+m)=p(p≥0)的一元二次方程可采用直接开平方的方法解一元二次方程.如果方程化成x²=p的形式,那么可得x=±p;(x²=p,x=±根号p)如果方程能化成(nx+m)=p(p≥0)的形式,那么nx+m=±p。
简洁的语言:
C语言包含的各种控制语句仅有9种,关键字也只有32个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。
实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。
提供的控制语句具有结构化特征,如for语句、if...else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。
c语言编写一元2次方程。
参考技术A 程序想法没错,但设计的时候有点失误。void
main()
float
a=0,b=0,c=0,d=0,x1=0,x2=0,e=0;/*定义变量*/
printf("axe2+bx+c=0,(a,b,c):\n");/*提示输入3个数*/
scanf("%f,%f,%f",&a,&b,&c);/*输入的时候用float型
*/
e=sqrt(d);/*根号d
*/
x1=(-b+e)/(2*a);/*计算方程,公式有点不点,逻辑*/
x2=(-b-e)/(2*a);/*计算方程*/
printf("\n
positive:\n
x1=%f,\n
negative:\nx2=%f",x1,x2);/*输出x1
x2,输出的时候也要用float型*/
else
printf("equation");/*方程无解*/
getch();
//经修改,可以正常运行,
还有建议下,你就在定义变量的时候不要一大串一起定义类型,
有时候变量的类型是不无法隐型转换的,就会出错。
就像程序里面的,开根号又不一定都开出个整数,大多都是带小数的,就应该定义成float型,
最后的解也会直接化成带小数的,要是你用long(长整型,也是整型的一种),
那小数点后面就将被程序自动省略,那问题可就大了,呵呵,。
还在做为printf输出的时候,要给点提示,不然人家也不知道,这a,b,c是干嘛用的。 参考技术B 这是我做的
#include
#include
void
main()
//主函数
float
a,b,c,delta,x,x1,x2,realpart,imagpart;
//定义a,b,c,delta,x,x1,x2,x3为浮点型
scanf("%f,%f,%f",&a,&b,&c);
//输入二次方程系数a,b,c的值
delta=b*b-4*a*c;
if(fabs(a)>=1e-6)
//以下为if语句
if(fabs(delta)<=1e-6)
printf("此时方程有两相同实根且为%f\n",x=-b/2/a);//delta为0有一根
else
if(delta>1e-6)
x1=(-b+sqrt(delta))/2/a;
x2=(-b-sqrt(delta))/2/a;
printf("x1=%f,x2=%f\n",x1,x2);//delta>0有两实根
else
realpart=-b/(2*a);
imagpart=sqrt(-delta)/(2*a);
printf("has
complex
roots:\n");
printf("%f+%f*i\n",realpart,imagpart);
printf("%f-%f*i\n",realpart,imagpart);//delta<0有两复根
else
if(fabs(b)<=1e-6)
if(fabs(c)<=1e-6)
printf("可输出任意x值\n");
else
printf("此时方程无意义\n");
else
printf("此时方程有一根为%f\n",x=-c/b);
参考技术C 这是我做的
#include<stdio.h>
#include<math.h>
void
main()
//主函数
float
a,b,c,delta,x,x1,x2,realpart,imagpart;
//定义a,b,c,delta,x,x1,x2,x3为浮点型
scanf("%f,%f,%f",&a,&b,&c);
//输入二次方程系数a,b,c的值
delta=b*b-4*a*c;
if(fabs(a)>=1e-6)
//以下为if语句
if(fabs(delta)<=1e-6)
printf("此时方程有两相同实根且为%f\n",x=-b/2/a);//delta为0有一根
else
if(delta>1e-6)
x1=(-b+sqrt(delta))/2/a;
x2=(-b-sqrt(delta))/2/a;
printf("x1=%f,x2=%f\n",x1,x2);//delta>0有两实根
else
realpart=-b/(2*a);
imagpart=sqrt(-delta)/(2*a);
printf("has
complex
roots:\n");
printf("%f+%f*i\n",realpart,imagpart);
printf("%f-%f*i\n",realpart,imagpart);//delta<0有两复根
else
if(fabs(b)<=1e-6)
if(fabs(c)<=1e-6)
printf("可输出任意x值\n");
else
printf("此时方程无意义\n");
else
printf("此时方程有一根为%f\n",x=-c/b);
以上是关于求一元二次方程的根c语言的主要内容,如果未能解决你的问题,请参考以下文章