c语言多项式函数定义 c语言多项式函数定义怎么写

一元多项式运算c语言实现#includestdio.h 声明部分:源代码含有2个文件
#includemalloc.h
typedef struct pnode // 定义指针//
{int coef; //定义系数//
int exp; //定义指数//
struct pnode *next;
}pnode;
pnode * creat() //creat函数用来存放多项式//
{int m,n;
pnode *head,*rear,*s;
head=(pnode *)malloc(sizeof(pnode));
rear=head;
printf("\n输入指数(按递增顺序输入):");
scanf("%d",m);
printf("输入一元式系数(0为退出):");
scanf("%d",n);
do
{
s=(pnode *)malloc(sizeof(pnode));
s-coef=n; //n为系数//
s-exp=m; //m为指数//
rear-next=s;
s-next=NULL;
rear=s;
printf("\n输入指数(按递增顺序输入):");
scanf("%d",m);
printf("输入一元式系数(0为退出):");
scanf("%d",n);
}while(n);
return head;
}
pnode * add(pnode *heada,pnode *headb)
{pnode *headc,*a,*b,*s,*rearc;
int sum;
a=heada-next;b=headb-next;
headc=(pnode *)malloc(sizeof(pnode));
rearc=headc;
//多项式的存放//都放到s中里//
while(a!=NULLb!=NULL) //指数相等,则系数相加 。//
{
if(a-exp==b-exp)
{ sum=a-coef b-coef;
if(sum)
{s=(pnode *)malloc(sizeof(pnode));
s-coef=sum;
s-exp=a-exp;
rearc-next=s;
rearc=s;
a=a-next;
b=b-next;}
else
{a=a-next;
b=b-next;
}
}
else if(a-expb-exp)
//a指数如果小于b,则a放到s中//
{ s=(pnode *)malloc(sizeof(pnode));
s-coef=a-coef;
s-exp=a-exp;
rearc-next=s;
//用下一个结点s取代下一个c//
rearc=s;
a=a-next;
}
else //如果a的指数大,则b放到s中//
{ s=(pnode *)malloc(sizeof(pnode));
s-coef=b-coef;
s-exp=b-exp;
rearc-next=s;
rearc=s;
b=b-next;
}
}
if(a)
{while(a!=NULL) //b空了放a中的项//
{s=(pnode *)malloc(sizeof(pnode));
s-coef=a-coef;
s-exp=a-exp;
rearc-next=s;
s-next=NULL;
rearc=s;
a=a-next;
}
}
else if(b)
{while(b!=NULL) //a空了放b中的项//
{s=(pnode *)malloc(sizeof(pnode));
s-coef=b-coef;
s-exp=b-exp;
rearc-next=s;
s-next=NULL;
rearc=s;
b=b-next;
}}
return headc;
}
void main()
{pnode *a,*b,*c;
printf("建立A:");
a=creat();
printf("\n建立B:");
b=creat();
c=add(a,b);
c=c-next;
printf("%dx^%d",c-coef,c-exp);
c=c-next;
while(c!=NULL)
{printf(" %dx^%d",c-coef,c-exp);
c=c-next;
}
}
用C语言编写一段程序,要自定义函数 , 然后调用函数计算的,可以是递推 或 递归#include stdio.h
double H(int n,double x)
{
if(x1)
【c语言多项式函数定义 c语言多项式函数定义怎么写】{
if(n == 0)
return 1.0;// H0(x) = 1;
if(n == 1)
return 2.0*x;//H1(x) = 2x;
//直接输出 Hn(x) = 2xHn-1(x) - 2(n-1)Hn-2(x)
return 2.0*x*H(n-1,x) - 2.0*(double(n-1))*H(n-2,x);
}
else
return 0.0;//如果x=1,则输出0.0,表示无意义 。
}
void main()
{
double result;
result = H(10,2);//计算H10(2);
printf("the result is :%f \n",result);
}
求改C语言,调用递归函数,求勒让德多项式你的函数定义是这样:int lerande(int n,float x);但是你调用的时候是这样:y=lerande(n);,明显的一个函数的参数是2个,而你只传入一个参数 , 所以他会提示参数过少 。
这是程序的源码:
#include stdio.h
void print(float a){
printf("%5.2f\n",a); //你的程序里printf("%5.2\n",a);5.2后面少了个f
}
float p( int n,float x){
static float k;
if(n==0){
k=0.0;
}
else if(n==1) k=x; //这里把你的k=1.0改成了k=x;
else k=((2*n-1)*x*p(n-1,x)-(n-1)*p(n-2,x))/n;
return(k);
}
int main(){
int a;
float b;
printf("please input an integer,a real number!\n");
while(1){
scanf("%d %f",a,b);
print(p(a,b));
}
return 0; //main函数是int 型 , 最好加个返回值 。
}
c语言编程求解多项式ax^3 bx^2 c的值以下是一个计算多项式ax^3 bx^2 c值的C语言代码:
#include stdio.h
int main() {
float a, b, c, x, result;
printf("请输入多项式系数 a, b, c:");
scanf("%f %f %f", a, b, c);
printf("请输入 x 的值:");
scanf("%f", x);
result = a * x * x * xb * x * xc;
printf("多项式值为:%.2f", result);
return 0;
}
在程序中,我们首先定义了5个变量,分别用于存储多项式系数a、b、c , 自变量x和多项式值result 。然后,使用printf和scanf函数分别输出提示信息和获取用户输入的值 。最后,计算多项式的值 , 并使用printf函数输出结果 。注意,本代码中使用了float类型,因此可以处理浮点数输入和输出 。
C语言 一元多项式 谁能解释一下这个程序怎么算的啊 为什么要用两个结构体?Open函数怎么理解?//open函数中char *fname, PolyList * pL表示什么?
char *fname是指向文件名字符串首地址的指针;
PolyList * pL是指向表示多项式的结构数组首地址的指针 。
struct Poly { float coef; int index; };//声明每一项由系数及指数两部分组成
struct PolyList { Poly Polys[100]; int n; };//这个多项式最多可有100项,实际有n项
void Open(char *fname, PolyList * pL)
{
FILE * fp = fopen(fname, "r"); //以读方式打开指定的文件
fscanf(fp, "%d", pL-n ); //读取多项式的项数
for(int i = 0; ipL-n; i) //读取n项的系数及指数
fscanf(fp, "%f%d", pL-Polys[i].coef, pL-Polys[i].index );
}
多项式求和的c语言程序#include stdio.h
int Fluction(int);//声明实现多项式 1-1/2 1/3-1/4 1/5-1/6 ...的功能函数
double sum;//定义全局变量(其实一般不推荐定义全局变量)
int main()
{
int m,n;//m个测试实例,求前 n项和
while(scanf("%d",m)!=EOF)
{
for(int i=1;i=m;i)//输入 m个测试实例 , 所以循环 m次
{
scanf("%d",n);
Fluction(n);//调用函数,传参 n
printf("%.2lf\n",sum);//保留两位小数输出
}
}
}
int Fluction(int t)//函数定义,实现 1-1/2 1/3-1/4 1/5-1/6 ...多项式
{
int sign=1;//定义符号
double x;
sum=0;
for(int i=1;i=t;i)//要求前几项的和就循环几次
{
x=(double)sign/i;//强制转变类型
sum =x;
sign*=-1;
}
return sum;//一定要定义它返回 sum的值,否则,函数会自动返回 0
}
关于c语言多项式函数定义和c语言多项式函数定义怎么写的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读