我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

用c语言编程求解函数系数 c语言函数大全及详解pdf

编写c语言程序,求解一元二次方程ax²+bx+c=0,系数a,b,c用键盘输入

#includestdio.h

成都创新互联公司于2013年成立,先为贡嘎等服务建站,贡嘎等地企业,进行企业商务咨询服务。为贡嘎企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

#includemath.h

int main()

{

double a,b,c,x1,x2,d;

scanf("%lf%lf%lf",a,b,c);

if(a==0)

{

if(b==0)

{

if(0==c)

{

printf("恒等式:0+0+0=0\n");

}

else

{

printf("输入错误,不能构成等式!\n");

}

}

else

{

printf("只能构成一元一次方程,x=%.2lf\n",0==-(double)c/b ? 0 : -(double)c/b);

}

}

else

{

d=b*b-4*a*c;

if(d0)

{

printf("x1=%.2lf+%.2lfi\nx2=%.2lf-%.2lfi\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=%.2lf\n",(-b)/(2.0*a));

}

else

{

x1=(-b+sqrt(d))/(2.0*a);

x2=(-b-sqrt(d))/(2.0*a);

printf("x1=%.2lf\nx2=%.2lf\n",x1,x2);

}

}

return 0;

}

如何用c语言编程软件编写一个求函数的程序?即输入一组数据,得出一个函数。

你的意思是说,输入一些数据,让程序拟合出来一个函数。

这个很复杂。比如我举个例子。

多项式拟合函数polyfit之C语言的源码

2010-11-25 10:05:57| 分类: VC++编程 | 标签:double poly_n polyfit int for |字号 订阅

#include stdio.h

#include conio.h

#include stdlib.h

#include math.h

main()

{

int i,j,m,n=7,poly_n=2;

double x[7]={1,2,3,4,6,7,8},y[7]={2,3,6,7,5,3,2};

double a[3];

void polyfit(int n,double *x,double *y,int poly_n,double a[]);

system("cls");

polyfit(n,x,y,poly_n,a);

for (i=0;ipoly_n+1;i++)/*这里是升序排列,Matlab是降序排列*/

printf("a[%d]=%g\n",i,a[i]);

getch();

}

/*==================polyfit(n,x,y,poly_n,a)===================*/

/*=======拟合y=a0+a1*x+a2*x^2+……+apoly_n*x^poly_n========*/

/*=====n是数据个数 xy是数据值 poly_n是多项式的项数======*/

/*===返回a0,a1,a2,……a[poly_n],系数比项数多一(常数项)=====*/

void polyfit(int n,double x[],double y[],int poly_n,double a[])

{

int i,j;

double *tempx,*tempy,*sumxx,*sumxy,*ata;

void gauss_solve(int n,double A[],double x[],double b[]);

tempx=calloc(n,sizeof(double));

sumxx=calloc(poly_n*2+1,sizeof(double));

tempy=calloc(n,sizeof(double));

sumxy=calloc(poly_n+1,sizeof(double));

ata=calloc((poly_n+1)*(poly_n+1),sizeof(double));

for (i=0;in;i++)

{

tempx[i]=1;

tempy[i]=y[i];

}

for (i=0;i2*poly_n+1;i++)

for (sumxx[i]=0,j=0;jn;j++)

{

sumxx[i]+=tempx[j];

tempx[j]*=x[j];

}

for (i=0;ipoly_n+1;i++)

for (sumxy[i]=0,j=0;jn;j++)

{

sumxy[i]+=tempy[j];

tempy[j]*=x[j];

}

for (i=0;ipoly_n+1;i++)

for (j=0;jpoly_n+1;j++)

ata[i*(poly_n+1)+j]=sumxx[i+j];

gauss_solve(poly_n+1,ata,a,sumxy);

free(tempx);

free(sumxx);

free(tempy);

free(sumxy);

free(ata);

}

void gauss_solve(int n,double A[],double x[],double b[])

{

int i,j,k,r;

double max;

for (k=0;kn-1;k++)

{

max=fabs(A[k*n+k]); /*find maxmum*/

r=k;

for (i=k+1;in-1;i++)

if (maxfabs(A[i*n+i]))

{

max=fabs(A[i*n+i]);

r=i;

}

if (r!=k)

for (i=0;in;i++) /*change array:A[k]A[r] */

{

max=A[k*n+i];

A[k*n+i]=A[r*n+i];

A[r*n+i]=max;

}

max=b[k]; /*change array:b[k]b[r] */

b[k]=b[r];

b[r]=max;

for (i=k+1;in;i++)

{

for (j=k+1;jn;j++)

A[i*n+j]-=A[i*n+k]*A[k*n+j]/A[k*n+k];

b[i]-=A[i*n+k]*b[k]/A[k*n+k];

}

}

所以这种程序是超级大型的,一般没人能独立写出来。

编程计算器和一些程序能实现,但是源代码都是不公布的。

c语言程序设计 设计一个求解一元二次方程的函数,在主函数中输入方程的系数!!!急!!!!!!!!

/*

供参考!

*/

# include stdio.h

# include math.h

void calcu(double a,double b,double c);

int main(void)

{

double a, b, c;

char ch;

do

{

printf("请输入一元二次方程的三个系数:\n");

printf("a=\t");

scanf("%lf", a);

printf("b=\t");

scanf("%lf", b);

printf("c=\t");

scanf("%lf", c);

calcu(a,b,c);

printf("继续(Y/y),输入其他退出: ");

scanf(" %c", ch);

printf("\n");

} while ('y'==ch || 'Y'==ch);

printf("成功退出!\n");

return 0;

}

void calcu(double a,double b,double c)

{

double delta;

double x1, x2;

delta = b*b - 4*a*c;

if (delta 0)

{

x1 = (-b + sqrt(delta)) / (2*a);

x2 = (-b - sqrt(delta)) / (2*a);

printf("有两个解,x1 = %lf, x2 = %lf\n", x1, x2);

}

else if (0 == delta)

{

x1 = x2 = (-b) / (2*a);

printf("有唯一解,x1 = x2 = %lf\n", x1, x2);

}

else

{

printf("无实数解!\n");

}

}

/*

在c++6.0中的运行结果是:

-------------------------

请输入一元二次方程的三个系数:

a= 1

b= -3

c= 2

有两个解,x1 = 2.000000, x2 = 1.000000

继续(Y/y),输入其他退出: y

请输入一元二次方程的三个系数:

a= 1

b= 1

c= 1

无实数解!

继续(Y/y),输入其他退出: y

请输入一元二次方程的三个系数:

a= 1

b= -2

c= 1

有唯一解,x1 = x2 = 1.000000

继续(Y/y),输入其他退出: n

成功退出!

--------------------------------

*/


当前文章:用c语言编程求解函数系数 c语言函数大全及详解pdf
链接地址:http://shouzuofang.com/article/hpoiee.html

其他资讯