用c语言计算一元二次函数 c语言编程一元二次方程求解

怎样用c语言解一元二次函数两种方法:
一、定义求根公式用c语言计算一元二次函数,根据a、b、c用c语言计算一元二次函数的值计算结果 。
二、暴力枚举用c语言计算一元二次函数,每隔 0.001 取一个值用c语言计算一元二次函数,当abs(f(x)-0)0.00001 时视为得出结果 。
c语言怎么求解一元二次方程c语言一元二次方程编程是#include iostream。#include cmath 。using namespace std 。int main() 。{float a,b,c;float x1,x2; cinabc;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)的一元二次方程可采用直接开平方的方法解一元二次方程.如果方程化成x2=p的形式 , 那么可得x=±p;(x2=p,x=±根号p)如果方程能化成(nx m)=p(p≥0)的形式,那么nx m=±p 。
简洁的语言:
C语言包含的各种控制语句仅有9种,关键字也只有32个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简 。
实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统 。
提供的控制语句具有结构化特征,如for语句、if...else语句和switch语句等 。可以用于实现函数的逻辑控制,方便面向过程的程序设计 。
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();
}
//经修改,可以正常运行,
还有建议下,用c语言计算一元二次函数你就在定义变量的时候不要一大串一起定义类型 ,
有时候变量的类型是不无法隐型转换的,就会出错 。
就像程序里面的,开根号又不一定都开出个整数,大多都是带小数的,就应该定义成float型,
最后的解也会直接化成带小数的,要是你用long(长整型 , 也是整型的一种) ,
那小数点后面就将被程序自动省略 , 那问题可就大用c语言计算一元二次函数了,呵呵,。
还在做为printf输出的时候,要给点提示,不然人家也不知道,这a,b,c是干嘛用的 。
c语言 算一元二次方程//只一处有错,还有一个注意输入格式.
#includestdio.h
#includemath.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(disc0)
{
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)//只有此处有错,关系表达式用c语言计算一元二次函数的等于符号是"==",此句改为else if(disc==0);即可
{
p=-b/(2.0*a);
x1=p;
printf("x1=x2=%lf",x1);
}
else if(disc0)
{
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语言 , 求一元二次方程的解对于如下的一元二次方程:
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);
当delta0时,其两个根为复数解 , 实部皆为-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()
{float a,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(d0)
printf("方程没有实数解 。\n");
if (d==0){x1=(-b)/(2*a);
printf("x1=%f\n",x1);}
if (d0){x1=(-b sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f,x2=%f\n",x1,x2);} }
请输入a:12
请输入b:34
请输入c:4
x1=-0.122985,x2=-2.710348
Press any key to continue
扩展资料:
一元二次方程还可以用迭代法的思想设计程序:
例:一个饲养场引进一只刚出生的新品种兔子,这种兔子从出生的下一个月开始,每月新生一只兔子,新生的兔子也如此繁殖 。如果所有的兔子都不死去,问到第 12 个月时,该饲养场共有兔子多少只?
分析:这是一个典型的递推问题 。我们不妨假设第 1 个月时兔子的只数为 u 1,第 2 个月时兔子的只数为 u 2,第 3 个月时兔子的只数为 u 3 ,……根据题意,“这种兔子从出生的下一个月开始,每月新生一只兔子”,则有
u 1 = 1 , u 2 = u 1u 1 × 1 = 2 , u 3 = u 2u 2 × 1 = 4,……
根据这个规律,可以归纳出下面的递推公式:u n = u(n - 1)× 2 (n ≥ 2),对应 u n 和 u(n - 1),定义两个迭代变量 y 和 x ,可将上面的递推公式转换成如下迭代关系:
y=x*2,x=y
让计算机对这个迭代关系重复执行 11 次,就可以算出第 12 个月时的兔子数 。参考程序如下:
clsx=1for i=2 to 12
y=x*2x=y
next iprint y
end
迭代法是一类利用递推公式或循环算法通过构造序列来求问题近似解的方法 。例如 , 对非线性方程,利用递推关系式,从开始依次计算,来逼近方程的根的方法,
若仅与有关,即,则称此迭代法为单步迭代法,一般称为多步迭代法;对于线性方程组,由关系从开始依次计算来过近方程的解的方法 。
若对某一正整数,当时 , 与 k 无关,称该迭代法为定常迭代法,否则称之为非定常迭代法 。称所构造的序列为迭代序列 。
参考资料:迭代法_百度百科
【用c语言计算一元二次函数 c语言编程一元二次方程求解】关于用c语言计算一元二次函数和c语言编程一元二次方程求解的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读