当前位置:首页 » 编程语言 » 一元二次方程c语言程序

一元二次方程c语言程序

发布时间: 2022-04-07 16:29:06

⑴ 怎样用c语言编一个解一元二次方程的程序(可以看步骤)!

#include <stdio.h>
#include <math.h>
int main(void)
{
int a, b, c; //定义一元二次方程的三个数值;
printf("请依次输入一元二次方程的三个参数a b c,中间以空格隔开\n");
scanf("%d %d %d", &a, &b, &c); //依次输入一元二次方程的三个参数
double delta = b*b - 4*a*c; //定义delta的值为b*b - 4*a*c
double x1 = (-b + sqrt(delta))/(2 * a);
double x2 = (-b - sqrt(delta))/(2 * a);

if (delta>0) //delta大于0时,方程有两个解
{
printf("一元二次方程有两个解\n");
printf("一元二次方程的第一个解,x1 = %f\n",x1);
printf("一元二次方程的第二个解,x2 = %f\n",x2);
}
else if (delta ==0) //delta等于0,方程有两个相同的解
{
printf("一元二次方程有两个相同的解\n");
printf("一元二次方程的解为x1 = x2 =%f\n",x1);
}
else //delta小于0时,方程没有解
{
printf("一元二次方程没有解\n");
}

return 0;
}

⑵ 用C语言编写求一元二次方程根的程序

用C语言编写求一元二次方程根的程序,条件判断的充分,步骤如下:

void main()
{
float a,b,c,delta;
scanf("%f%f%f",&a,&b,&c);
if(a!=0)
{
delta=b*b-4*a*c;
if(delta==0)
printf("x1=x2=%7.2f",-b/(2*a));
else if(delta>0)
{
printf("x1=%7.2f",(-b+sqrt(delta))/(2*a));
printf("x2=%7.2f",(-b-sqrt(delta))/(2*a));
}
else
{
printf("x1=%7.2f+i%7.2f",-b/(2*a),sqrt(-delta)/(2*a));
printf("x2=%7.2f-i%7.2f",-b/(2*a),sqrt(-delta)/(2*a));
}
}
else if(b!=0)
printf("x=%7.2f",-c/b);
else if(c==0)
printf("0=0,x为任意解
");
else
printf("%f=0,error!",c);
}

⑶ 怎样用C语言编一个解一元二次方程的程序

这个只能计算已经化简成aX^2+bX+c=0的一元二次方程


intfun(doublea,doubleb,doublec,double*x1,double*x2)//由于方程既可能无解也可能有两个解,所以不能直接返回X的值
{
doublep=b*b-4*a*c;//计算Δ
if(p<0)
{
return0;//方程无解,返回0
}
p=√p//求Δ的平方根
*x1=……//用求根公式计算X1
*x2=……//用求根公式计算X2
return1;//方程有解,返回1
}


就这些了,求根公式和求平方根函数我忘了,你自己查一下。头文件要加一个<math.h>。

⑷ C语言编程:求1元2次方程的根

#include
"stdio.h"
#include
"math.h"
void
main()
{
printf("求方程ax^2+bx+c=0的根:\n");
L:
printf("请分别输入a,b,c的值。\n");
double
a,b,c,x1,x2,x,y;
char
z;
printf("输入a,b,c=");
scanf("a=%lf,b=%lf,c=%lf\n,&a,&b,&c");
printf("你所输入的方程为%lfx^2+%lfx+%lf=0。\n",a,b,c);
M:
printf("是否正确?(是y\否n)\n");
scanf("%c",&z);
if
(z=='n')
goto
L;
else
if
(z=='y')
{
if
((b*b-4*a*c)>0)
x1=(-b+sqrt(b*b-4*a*c))/(2*a),
x2=(-b-sqrt(b*b-4*a*c))/(2*a),
printf("有两个不同的实根:\nx1=%lf\nx2=%lf\n",x1,x2),
printf("\n");
if
((b*b-4*a*c)==0)
x1=-b/(2*a),
printf("有两个相同的实根:\nx1=x2=%lf\n",x1),
printf("\n");
if
((b*b-4*a*c)<0)
x=-b/(2*a),
y=sqrt(4*a*c-b*b)/(2*a),
printf("有两表个不同的曾根:\nx1=%lf+%lfi\nx2=%lf-%lfi\n",x,y,x,y),
printf("\n");
goto
L
;
}
else
printf("请正确输入:\n");
goto
M;
}

⑸ 一元二次方程求根的C语言程序代码

#include<stdio.h>
#include<math.h>
voidmain()
{
doublea,b,c,d,x1,x2;/*sqrt要求用double型,定义用double,另外double和后面变量之间要有空格*/
printf("请输入系数a、b、c:");
scanf("%lf%lf%lf",&a,&b,&c);/*&b和&c之间要有逗号*/
d=b*b-4*a*c;
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%.2lf x2=%.2lf ",x1,x2);/*输出用%lf*/
}

⑹ C语言,求一元二次方程的解

对于如下的一元二次方程:

ax*x+bx+c=0

设计C语言程序,输入一元二次方程的三个系数a、b、c,求解出该方程的两个根,并且允许用户在程序中多次输入不同的系数,以求解不同的一元二次方程的解。

编程思路分析:

对于该方程,令delta=b^2-4*a*c,从数学的角度来讲,我们需要根据delta的值来判断该方程的根情况:

当delta>=0时,其两个根为实数解,分别为(-b+sqrt(delta))/(2*a)和(-b-sqrt(delta))/(2*a);

当delta<0时,其两个根为复数解,实部皆为-b/(2*a),虚部分别为sqrt(-delta)/(2*a)和-sqrt(-delta)/(2*a)。

其中,sqrt(delta)代表对delta作开根号运算。

在代码设计中,可定义一个结构体Complex存储该方程的根,在该结构体中包括实部和虚部两个变
在程序中,定义两个Complex类型的根x1和x2,当delta>=0时,两个根的虚部为0,否则,分别求解两个根的虚部值。
具体编程如下:

#include"stdio.h"
#include"math.h"
/*求一元二次方程ax*x+bx+c=0的解*/
main()
{floata,b,c,x1,x2,d;
printf("请输入a:");
scanf("%f",&a);
printf("请输入b:");
scanf("%f",&b);
printf("请输入c:");
scanf("%f",&c);
d=b*b-4*a*c;if(d<0)
printf("方程没有实数解。 ");
if(d==0){x1=(-b)/(2*a);
printf("x1=%f ",x1);}
if(d>0){x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f,x2=%f ",x1,x2);}}
请输入a:12
请输入b:34
请输入c:4
x1=-0.122985,x2=-2.710348
Pressanykeytocontinue

为迭代序列。

⑺ C语言编写一个求一元二次方程的实根的程序。

步骤:

  1. 打开visual C++ 6.0-文件-新建-文件-C++ Source File

2.

定义变量:

#include <stdio.h>

#include <math.h>

void main()

{

double a,b,c; /*定义系数变量*/

double x1,x2,p; /*定义根变量和表达式的变量值*/

⑻ c语言解一元二次方程

多出一句“请正确输入,谢谢合作!”与“是否正确?(是y\否n)”的原因:
注意一下scanf,scanf并不是像通常所误解的,认为是直接读取用户的当前输入为输入值。
而是读取当前键盘缓冲区中的数据为本次输入值。
所以如果当前的键盘缓冲区内仍有数据,那么就不会接受当前的用户输入值。

在这个程序中,
由于键盘缓冲区内仍有用户上次输入数据时所残留的回车符(也就是输入a,b,c时最后敲的回车),
所以scanf("%c",&z); 这一句就将键盘缓冲区中的回车读入,作为z值了。
所以判断失败,多出一句“请正确输入,谢谢合作!”与“是否正确?(是y\否n)”。

改正办法:
在每句scanf前,加上强制清空键盘缓冲区的处理fflush(stdin);,以保证接收的数据的正确性。
这也是一个好的编程习惯。

改过以后的程序:
#include "stdio.h"
#include "math.h"
void main()
{
printf("求方程ax^2+bx+c=0的根:\n");
L: printf("请分别输入a,b,c的值。\n");
double a,b,c,x1,x2,x,y;
char z;
printf("a=");
fflush(stdin); //强制清空键盘缓冲区
scanf("%lf",&a);
printf("b=");
fflush(stdin); //强制清空键盘缓冲区
scanf("%lf",&b);
printf("c=");
fflush(stdin); //强制清空键盘缓冲区
scanf("%lf",&c);
printf("你所输入的方程为%lfx^2+%lfx+%lf=0。\n",a,b,c);
M: printf("是否正确?(是y\否n)\n");
fflush(stdin); //强制清空键盘缓冲区
scanf("%c",&z);
if (z=='n')
goto L;
else if (z=='y')
{
if ((b*b-4*a*c)>0)
x1=(-b+sqrt(b*b-4*a*c))/(2*a),
x2=(-b-sqrt(b*b-4*a*c))/(2*a),
printf("有两个不同的实根:\nx1=%lf\nx2=%lf\n",x1,x2),
printf("\n");
if ((b*b-4*a*c)==0)
x1=-b/(2*a),
printf("有两个相同的实根:\nx1=x2=%lf\n",x1),
printf("\n");
if ((b*b-4*a*c)<0)
x=-b/(2*a),
y=sqrt(4*a*c-b*b)/(2*a),
printf("有两表个不同的曾根:\nx1=%lf+%lfi\nx2=%lf-%lfi\n",x,y,x,y),
printf("\n");
goto L ;
}
else printf("请正确输入,谢谢合作!\n");
goto M;
}

⑼ 求一元二次方程的C语言程序

solution明明定义了6个参数,调用的时候却没有提供任何参数……

应该删除solution 的所有形参,然后把a、b、c等的定义放在 solution函数内部

⑽ C语言程序 求一元二次方程的根

scanf里面要用 "%lf",因为是double型(长浮点数型)
有图有真相


如图,如有疑问或不明白请提问哦!

热点内容
安卓鸿蒙苹果哪个好用 发布:2025-01-19 10:32:33 浏览:264
正规物业保安怎么配置 发布:2025-01-19 10:27:30 浏览:518
断裂下载ftp 发布:2025-01-19 10:27:30 浏览:641
安卓导航怎么调对比度 发布:2025-01-19 10:26:52 浏览:25
服务器共享文件如何查看访问记录 发布:2025-01-19 10:08:55 浏览:400
datasourceSQL 发布:2025-01-19 10:01:25 浏览:838
aspnet网站的编译 发布:2025-01-19 10:00:49 浏览:334
路特仕A9工厂密码是多少 发布:2025-01-19 09:59:44 浏览:257
linux的命令find 发布:2025-01-19 09:42:55 浏览:174
简单的计算机编程 发布:2025-01-19 09:39:54 浏览:520