十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#include stdio.h
创新互联主要从事成都网站设计、做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务堆龙德庆,十年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
#include math.h
int main()
{
float a=5, b;
b=sqrt(a);
printf("a的平方根为:%f\n",b);
return 0;
}
你没有考虑a=0的情况,我把我写的给你看看,你看看有什么不同吧:
#includestdio.h
#includemath.h
main()
{
int a,b,c;
double DT,x,x1,x2;
scanf("%d %d %d",a,b,c);
DT=b*b-4*a*c;
if((a==0)(b==0))
printf("Input error!\n");
else
{
if(a==0)
{ x=-c/(1.*b);
printf("x=%.6f\n",x);
}
else
{
if(DT==0)
{x=-b/(2*a);
printf("x1=x2=%.6f\n",x);
}
if(DT0)
{ x1=(-b+sqrt(DT))/(2*a);
x2=(-b-sqrt(DT))/(2*a);
printf("x1=%.6f\nx2=%.6f\n",x1,x2);
}
if((DT0)(b==0))
{DT=-DT;
x1=(sqrt(DT))/(2*a);
x2=(-sqrt(DT))/(2*a);
printf("x1=%.6fi\nx2=%.6fi\n",x1,x2);
}
if((DT0)(b!=0))
{DT=-DT;
x1=-b/(2.*a);
x2=sqrt(1.*DT)/(2*a);
printf("x1=%.6f+%.6fi\nx2=%.6f-%.6fi\n",x1,x2,x1,x2);
}
}
}
return 0;
}
具体的输入输出格式可能不一样,因为不清楚你的要求,有疑问可以问我
#includestdio.h
#includestdlib.h
#includemath.h
int main()
{
float a,b,c,x,x1,x2,d;
scanf("%f %f %f",a,b,c);
d=b*b-4*a*c;
if(a==0)
{
if(b==0)
{
if(0==c)
{
printf("等式0!\n");
}
else
{
printf("输入错误!\n");
}
}
else
{
printf("只能构成一元一次方程,x=%.6f\n",0==-(float)c/b ? 0 : -(float)c/b);
}
}
else
{
if(d0)
{
x1=(-b+sqrt(-d))/(2.0*a);
x2=(-b-sqrt(-d))/(2.0*a);
printf("x1=%.6f+%.6fi\nx2=%.6f-%.6fi\n",(-b)/(2.0*a),sqrt(-d)/(2.0*a),(-b)/(2.0*a),sqrt(-d)/(2.0*a));
}
else if(d==0)
{
printf("x1=x2=%.6f\n",(-b)/(2.0*a));
}
else
{
x1=(-b+sqrt(d))/(2.0*a);
x2=(-b-sqrt(d))/(2.0*a);
printf("x1=%.6f\nx2=%.6f\n",x1,x2);
}
}
system("PAUSE");
return EXIT_SUCCESS;
}
用math.h里封装好的函数,具体如下:
求平方根:double sqrt(double x)
例:
#include math.h
#include stdio.h
int main(void)
{
double x = 4.0, result;
result = sqrt(x);
printf("The square root of %lf is %lf
", x, result);
return 0;
}
扩展资料:
关于c语言的基本运算
1.加法运算符 +
int a = 10;
int b = a + 5;
在第3行利用加法运算符 + 进行了加法运算,再将和赋值给了变量b,最终变量b的值是15
2.减法运算符 或 负值运算符 -
int b = 10 - 5;
int a = -10;
1 在第1行利用减法运算符 - 进行了减法运算,再将差赋值给了变量b,最终变量b的值是5
2 在第3行中,这个 - 并不是什么减法运算符,而算是一个负值运算符,-10代表的是负十
3.乘法运算符 *
int b = 10 * 5;
注意:乘法运算符并不是x或者X,而是星号*。变量b最终的值是50。
4.除法运算符 /
double a = 10.0 / 4;
double b = 10 / 4;
printf("a=%f, b=%f \n", a, b);
注意:除法运算符并不是÷,而是一个正斜杠 /
1 第1行中的10.0是浮点型,4是整型,因此会将4自动类型提升为浮点型后再进行运算,最后变量b的值是2.5
2 第2行中的10和4都是整型,计算机中的运算有个原则:相同数据类型的值才能进行运算,而且运算结果依然是同一种数据类型。因此,整数除于整数,求出来的结果依然是整数,会损失小数部分。最后变量b的值是2。
5.模运算符或称取余运算符 %
注意:这个%并不是除号÷,它是一个取余运算符,或者叫做模运算符。取余的意思是,取得两个整数相除之后的余数。比如,5除于2的余数是1,5除于3的余数是2。因此使用这个%有个原则:%两侧必须都为整数。
错误的写法:1 int a = 5.0 % 2;
编译器会直接报错,因为5.0并非整数。
二分法计算函数f(x)=x*x*x*x+2*x*x*x-x-1;
本程序在turbo c或c++下编译
#include "stdio.h"
#include math.h
float f(float x)
{float y;
y=x*x*x*x+2*x*x*x-x-1;
return y;
}
void main()
{float a=0,b=0,h,y,x;
int k,n0;
printf("please input qujian a and b");
scanf("%f%f%d",a,b,n0); /*输入含根区间a,b,循环次数n0 */
for(k=0;k=n0;k++)
{ x=(a+b)/2;
h=(b-a)/2;
y=f(x);
if(h10e-6||fabs(y)10e-6)
{ printf("k=%d,x=%f,y=%f",k,x,y);
break; } /*输出分半次数k,函数的根x,及x对应的函数值.*/
else
{if(f(a)*f(x)0)
b=x;
else a=x;
}
}
}
只含有一个未知数(一元),并且未知数项的最高次数是2(二次)的整式方程叫做一元二次方程。标准形式为:ax²+bx+c=0(a≠0)。
一、开平方法。
形如x²=p 或(nx+m)²=p(p≥0)的一元二次方程可采用开平方法解一元二次方程。
二、配方法。
将一元二次方程配成(x+m)²=n的形式,再利用直接开平方法求解的方法。
用配方法解一元二次方程的步骤:
①把原方程化为一般形式;
②方程两边同除以二次项系数,使二次项系数为1,并把常数项移到方程右边;
③方程两边同时加上一次项系数一半的平方;
④把左边配成一个完全平方式,右边化为一个常数;
⑤进一步通过直接开平方法求出方程的解,如果右边是非负数,则方程有两个实数根。
用求根公式法解一元二次方程的一般步骤为:
①把方程化成一般形式 ,确定a,b,c的值(注意符号);
②求出判别式的值,判断根的情况;
③在Δ≥0的前提下,把a、b、c的值代入公式。
希望我能帮助你解疑释惑。