关于C语言 求一元二次方程ax2+bx+c=0的解 用选择结构
发布网友
发布时间:2024-04-08 04:48
我来回答
共1个回答
热心网友
时间:2024-04-11 09:28
#include<stdio.h>
#include<math.h>
float x1,x2,disc,realpart,imagpart;//全局变量
float great_than_zero(float a,float b)//disc>0时的函数
{
x1=(float)(-b+sqrt(disc))/(2*a);//(v6默认是double型),强制类型转换使数类型据统一
x2=(float)(-b-sqrt(disc))/(2*a);
return(0);
}
float equal_to_zero(float a,float b)//disc=0时的函数
{
x1=x2=-b/(2*a);
return(0);
}float smaller_than_zero(float a,float b)//disc<0时的函数
{
realpart=-b/(2*a);//复根的实部
imagpart=(float)sqrt(-disc)/(2*a);//复根的虚部
return(0);
}int main()
{
float a,b,c;
int flag=1;
while(flag)
{
printf("input a,b,c:");
scanf("%f%f%f",&a,&b,&c);
printf("The equation:");
if(fabs(a)<=1e-6)
printf("is not a quadratic.input date again!\n"); else
{
printf("%5.2f*x*x+%5.2f*x+%5.2f=0\n",a,b,c);
printf("root:");
disc=b*b-4*a*c;
if(disc>0)
{
great_than_zero(a,b);
printf("has distinct real roots:x1=%5.2f\tx2=%5.2f\n",x1,x2);
}
else if(fabs(disc)<=1e-6)
{
equal_to_zero(a,b);
printf("has two equal roots:x1=x2=%5.2f\n",x1,x2);
}
else
{
smaller_than_zero(a,b);
printf("hascomplex roots:x1=%5.2f+%5.2fi\tx2=%5.2f-%5.2fi\n",realpart,imagpart,realpart,imagpart);
}
flag=0;
}
}
}
运行如下:
关于C语言 求一元二次方程ax2+bx+c=0的解 用选择结构
printf("The equation:");if(fabs(a)<=1e-6)printf("is not a quadratic.input date again!\n"); else { printf("%5.2f*x*x+%5.2f*x+%5.2f=0\n",a,b,c);printf("root:");disc=b*b-4*a*c;if(disc>0){ great_than_zero(a,b);printf("has distinct real roots:x1=...
求一元二次方程ax2+bx+c=0的根c语言
1、一元二次方程ax^2+bx+c=0的根的求解涉及到数学的二次方程解公式。当我们谈论一元二次方程的根时,我们实际上是在谈论这个方程的解,也就是能够使得方程成立的未知数的值。在C语言中,我们可以使用数学库来帮助我们进行计算。2、首先,我们需要明白一元二次方程的解的公式。这个公式是:x=(-...
C语言问题
形式: begin 语句1; 语句2; ··· 语句n end;用保留字begin和end括起来,构成一条逻辑上的语句,语法上充当一条语句。 Slide 9二、 选择结构程序设计 一:什么是选择结构?选择结构的特点? 二:选择结构的几种语句: 1.if 语句:格式:if 条件 then 语句1; if 条件 then 语句1 else 语句2;功能:执行过程说明...
C语言,以下如何理解,谢谢!
例子中的“;”是C语言的语句分隔符,执行顺序为从左到右,第1条语句执行后a的值为3,第2条语句执行后b的值为5,第3条语句中有两个运算符前置+ +和*,按表中所列顺序,+ +先执行,*后执行,所以+ + a执行后,a的值为4,由于+ +为前置运算,所以a的值4参与运算,C的值为20,最后执行第4条语句,由于a + +...
...解二元一次方程,下面有我的代码,总是出现选择结构不起作用的问题,求...
(a == 0)printf("The equation is not quadratic.");else{if ((b*b - 4 * a*c) < 0){f = sqrt(-(b*b - 4 * a*c));u = -b / (2 * a);v = f / (2 * a);w = -f / (2 * a);printf("The equation has two complex roots:%.4f+%.4fi and %.4f-%....
求助一道C语言设计题目
include <stdio.h>int main(){ int year,n=0; for( year=1;year<=3000;year++ ) { if ( (year%4==0 && year%100!=0) || year%400==0 ) n++; } printf("n=%d\n", n ); return 0;}
C语言到底能干什么 ??
二.学好C语言的四种程序结构 (1)顺序结构 顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。 例如;a = 3,b = 5,现交换a,b的值,这个问题就好象交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为: c = a; a = ...
跪求C语言函数调用的详细过程,函数之间是怎么传递的,到底是怎么发生调用...
这是典型的分支结构,如果条件成立,执行分支1,否则执行分支2,分支1和分支2都可以是1条或若干条语句构成。如:求ax^2+bx+c=0的根 分析:因为当b^2-4ac>=0时,方程有两个实根,否则(b^2-4ac<0)有两个共轭复根。其程序段如下: d=b*b-4*a*c; if(d>=0) {x1=(-b+sqrt(d))/2a; x2=(-...
一个C语言的选择结构问题
total=number*(1-cost);} if (number>=3000){ cost=0.3;total=number*(1-cost);} if(number>=2000){ cost=0.2;total=number*(1-cost);} if(number>=1000){ cost=0.1;total=number*(1-cost);} if(number<1000){ cost=0;total=number*(1-cost);} printf("total=%f\n",...
c语言选择结构if()括号里面跟表达式 常数时的意思?有例题
if(0) -- 0 就是“假”。“假”执行 else{} if (x=y+z) -- 这里是赋值语句,不是表达式,所以总是得真。于是执行printf("+++++");if (x==y+z) 里面才是条件表达式