⑴ 用c语言求解一元二次方程的解怎么写
您好!很高兴为您解答。
 
原代码中的scanf和printf中的%要放在d和lf的前面才对,改正后运算无误~
 
#include <stdio.h>
#include <math.h>
 void main ()
 {
  double x1;//x1,x2分别为方程的2个解
  double x2;
  double melt;
  int a;
  int b;//初始化ABC的三个变量
  int c; 
 printf("请输入a b c三个数的值:");
 scanf("%d %d %d",&a, &b ,&c);//输入ABC的时候需要空格
 melt = b*b - 4*a*c;//初始化melt的值
 if (melt>0)
 {    x1=(-b + sqrt(melt))/(2*a);
     x2=(-b - sqrt(melt))/(2*a);
  printf ("2个解,x1 = %lf,x2 = %lf\n",x1,x2);
 }
  
 else if (melt==0)
 {
 x1 = (-b )/(2*a);
 x2 = x1;
 printf("1个解,x1 = %lf,x2 = lf%\n",x1,x2);
 }
  else 
  {
   printf("无解\n");
  }
 }
 
望采纳~如您还有不解,欢迎追问~
⑵ c语言编写一元2次方程。
程序想法没错,但设计的时候有点失误。
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是干嘛用的。
⑶ 怎样用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语言算一元二次方程
# include<stdio.h>
# include<math.h>
int main()
{
 double a,b,c,x1,x2,d=0,e=0;
 scanf("%lf%lf%lf",&a,&b,&c);
 if(b*b-4*a*c<=0)
 {
 d=-b/2/a;
 e=sqrt(fabs(b*b-4*a*c))/2/a;
 printf("x1=%.3lf+%.3lfi x2=%.3lf-%.3lfi
",d,e,d,e);
 }
 else
 {
 x1=(-b+sqrt(b*b-4*a*c))/2/a,x2=(-b-sqrt(b*b-4*a*c))/(2*a);
 printf("x1=%.3lf x2=%.3lf
",x1,x2);
 }
 getch();
 return 0;
 }

你的程序没有问题,是你的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语言 算一元二次方程
//只一处有错,还有一个注意输入格式.
#include<stdio.h>
#include<math.h>
int main()
{
double p,q,x1,x2,disc,a,b,c;
scanf("%lf,%lf,%lf",&a,&b,&c);//特别注意:此处要求输入时a,b,c(三个数)之间用逗号隔开,而不是空格!
disc=b*b-4*a*c;
if(disc>0)
{
p=-b/(2.0*a);
q=(sqrt(disc))/(2.0*a);
x1=p+q;
x2=p-q;
printf("x1=%lf\tx2=%lf",x1,x2);
}
else if(disc=0)//只有此处有错,关系表达式的等于符号是"==",此句改为else if(disc==0);即可
{
p=-b/(2.0*a);
x1=p;
printf("x1=x2=%lf",x1);
}
else if(disc<0)
{
disc=-disc;
p=-b/(2.0*a);
q=(sqrt(disc))/(2.0*a);
printf("x1=%lf+%lfi\n",p,q);
printf("x2=%lf-%lfi\n",p,q);
}
return 0;
}
⑺ 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语言编程 解一元二次方程
#include<stdio.h>
main()
{int a,b,c,x1,x2,M,n;
printf("请输入方程的三个系数:");
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);n=a*c;
M=b*b-4*n;
printf("%d\n",M);if (M>0)
{  x1=(-b+M)/(2*a);
   x2=(-b-M)/(2*a);
   printf("方程的两个根是:\nx1=%d,x2=%d\n",x1,x2);
}
else if (M==0)
{  x1=-b/(2*a);
   printf("方程具有两个相等的实根:x1=x2=%d\n",x1);
}
else 
printf("输入错误,请重新输入\n");
}
