多项式c语言程序(用c语言写程序求多项式的方法)

今天给大家分享一下多项式C语言程序的知识,也会讲解一下用C语言编程多项式的方法。如果你碰巧解决了你现在面临的问题,别忘了关注这个网站,现在就开始吧!

这篇文章的列表: 1.题目:用C语言编程多项式计算 2、急!计算多项式的c语言程序 3.如何用C语言制作一元多项式的程序? 4、C语言多项式 5.c语言程序问题:写一个程序实现多项式计算。 6、多项式计算C语言编程 题目:用C语言编程多项式计算 #包含stdio.h

#包含stdlib.h

//结构节点

结构多项式

{

int coef

int exp

struct polynode * link

};

typedef struct poly node * poly pointer;//重命名

//插入一个节点并排序。

多指针插入(int e,int c,多指针头)

{

聚指针p,pr,k;

p =(poly pointer)malloc(sizeof(struct polynode));

pr =头;

p-link = NULL;

p-coef = c;

p-exp = e;

If (head==NULL) //链表为空。

{

head = p;

}

其他

{

而(pr!=NULLpr-exp=e) //降序排列

{

if (pr-exp==e)

{

pr-coef = pr-coef c;

回程头;

}

k = pr

pr = pr-link;

}

if (pr==head)

{

p-link =头;

head = p;

回程头;

}

if (pr==NULL)

{

k-link = p;

}

其他

{

p-link = k-link;

k-link = p;

}

}

回程头;

}

//打印链表

空白显示(多指针头)

{

聚指针p;

p =头部;

{

printf("%dx(exp)%d ",p-coef,p-exp);

p = p-link;

}

而(p!= NULL);

}

int main()

{

poly pointer first =(poly pointer)malloc(sizeof(struct polynode));

poly pointer second =(poly pointer)malloc(sizeof(struct polynode));

int c;

int e;

int I;

first = NULL

秒=空;

Printf("多项式加法小程序\ n \ n ");

Printf("请输入第一个多项式。(输入0,0结束)\ n \ n ");

Printf("请输入第1项。\ n高效:\ n ");

scanf("%d ",c);

Printf("请输入第1项。\n索引:\ n ");

scanf("%d ",e);

for(I = 0;c!=0;I )//将第一个等式存储在链表中。

{

first=insert(e,c,first);

Printf("请输入第一个多项式。(输入0,0结束)\ n \ n ");

Printf("请输入项目% d..\n系数:\ n ",I ^ 2);

scanf("%d ",c);

Printf("请输入项目% d..\n索引:\n”,I ^ 2);

scanf("%d ",e);

}

Printf("第一多项式");

显示(第一);

printf(" \ n \ n请输入第二个多项式。(输入0,0结束)\ n \ n ");

Printf("请输入第1项。\ n高效:\ n ");

scanf("%d ",c);

Printf("请输入第1项。\n索引:\ n ");

scanf("%d ",e);

for(I = 0;c!=0;I )//将第二个等式存储在链表中。

{

秒=插入(e,c,秒);

Printf("请输入第一个多项式。(输入0,0结束)\ n \ n ");

Printf("请输入项目% d..\n系数:\ n ",I ^ 2);

scanf("%d ",c);

Printf("请输入项目% d..\n索引:\n”,I ^ 2);

scanf("%d ",e);

}

Printf("二次多项式");

显示(秒);

printf(" \ n \ n \ n \ n ");

Printf("多项式和");

而(第二!=NULL)//将第二个链表合并到第一个链表中。

{

first=insert(second-exp,second-coef,first);

秒=秒-链接;

}

显示(第一);//打印输出

返回0;

}

急!计算多项式的c语言程序 #包括

#包括

空的

主(

)

{

两倍

coe如何用C语言做一元多项式程序? #包含stdio.h

#includewindows.h

void re(int max,int number);//判断符号输出

int main()

{

int number[101]= { 0 };//存储指数幂

int x1,x2;

int esc=1,max = 0;

for(int I = 0;ESC = = 1;i ) {

scanf("%d %d ",x1,x2);

if(i==0) {

max = x1

}

如果(x2!=0){

数字[x1]= x2;//同次幂的系数都存在于数组的同一个位置。

// printf("%d ",number[x1]);

}

If(x1==0) {//指令停止数据输入。

ESC = 0;

}

// printf("min=%d,max=%d\n ",min,max);

}

int n _ number[101]= { 0 };//存储指数幂

int n _ max = 0;

for(int I = 0;ESC = = 0;i ) {

scanf("%d %d ",x1,x2);

if(i==0) {

n _ max = x1

}

如果(x2!=0){

n _ number[x1]= x2;//同次幂的系数都存在于数组的同一个位置。

// printf("%d ",number[x1]);

}

If(x1==0) {//指令停止数据输入。

ESC = 1;

}

// printf("min=%d,max=%d\n ",min,max);

}

If(n_maxmax) {//整个If用于将两个多项式的系数转移到指数最大的数组中。

for(int I = 4;I = 0;我- ) {

if(数字[i]!=0||n_number[i]!=0) {

n _ number[I]= number[I];

// printf("n_number[%d]=%d\n ",I,n _ number);

}

if(n_number[i]!=0){

int data = n _ number[I];

// printf("%d ",n _ number[I]);

re(i,数据);

}

}

}否则{

for(int I = 100;I = 0;我- ) {

if(数字[i]!=0||n_number[i]!=0) {

数字[I]= n _数字[I];

}

if(数字[i]!=0) {

int data = number[I];

// printf("%d ",number[I]);

re(i,数据);

}

}

}

printf(" \ n ");

系统(“暂停”);

返回0;

}

void re(整数I,整数)

{

如果(数字!=1){

printf("%d ",数字);//如果系数为1,则不输出系数,如果系数为-1,则输出负号。

}else if(number==-1) {

printf("-");

}

If(i) {//指数不为0时输出X。

printf(" x ");

}

If(i1) {//防止1的幂。

printf("%d ",I);

}

如果(i0number0){ //系数为负,则不输出信号。

printf(" ");

}

}

c语言多项式 #包含stdio.h

#定义程度_最大8

void get_poly(double coeff[],int *degree)

{

int I;

printf("请输入最大度数:");

scanf("%d ",度);

for(I = *度;I = 0;我- ) {

printf("输入%d `s系数:",I);

scanf("%lf ",coeff[I]);

}

printf(" \ n您的多项式是:\ n ");

for(I = *度;I = 0;我- ) {

printf("%.2lfX^%d%c”,coeff[i],I,(i 0?':' \ n '));

}

}

double eval _ poly(const double coeff[],int degree,double x)

{

int I;

double m = x,ret = 0;

ret = coeff[0];

for(I = 1;i =度;i ) {

ret = coeff[I]* m;

m * = x;

}

返回ret

}

int main() {

double coeff[DEGREE_MAX],x;

int度;

get_poly(系数,度数);

printf(" \ n请输入X值:");

scanf("%lf ",x);

printf("答案是%.2lf\n ",eval_poly(coeff,degree,x));

返回0;

}

c语言程序问题:写一个程序实现多项式计算 #包含stdio.h

#包含stdlib.h

#包含数学. h

#定义EPS 1E-6

typedef结构项{

双倍系数;

int幂;

结构项* next

} *多项式,* pItem

多项式创建(){//创建多项式

pItem头,p;

双coe

int pwr

head = p =(pItem)malloc(sizeof(item));

while(1) {

Printf("系数的幂(以0 0结尾):");

scanf("%lf%d ",coe,PWR);

if(fabs(coe) = EPS!PWR)break;

p-next =(pItem)malloc(sizeof(item));

p-next-系数= coe

p-next-power = PWR;

p = p-next;

}

p-next = NULL;

回程头;

}

Void Sort(多项式头){//按降序幂排序。

pItem pt,q,p = head

while(p-next) {

q = p-next;

while(q-next) {

if(p-next-power q-next-power) {

pt = p-next;

p-next = q-next;

q-next = p-next-next;

p-next-next = pt;

}

else q = q-next;

}

p = p-next;

}

}

Void Show(多项式头){//显示多项式。

多项式p = head-next;

int flag = 1;

if(p == NULL)返回;

while(p) {

如果(标志){

if(fabs(p系数)= EPS) {

if(p-power == 0) printf("%.2lf ",p-系数);

else if(p-power == 1) {

if(p系数= = 1.0)printf(" x ");

else if(p-coefficient = =-1.0)printf("-x ");

else printf("%.2lfx ",p-系数);

}

else if(p-系数== 1.0) printf("x^%d”,p-幂);

else if(p-系数== -1.0) printf("-x^%d”,p-幂);

else printf("%.2lfx^%d”,p-系数,p-幂);

flag = 0;

}

}

else if(p系数0.0 fabs(p系数)= EPS) {

if(p-power == 0) printf(" %.2lf ",p-系数);

else if(p-power == 1) {

if(p系数= = 1.0)printf(" x ");

else printf(" %.2lfx ",p-系数);

}

else if(p系数= = 1.0)printf(“x^%d”,p次方);

else printf(“%.2lfx^%d”,p系数,p次方);

}

else if(p系数0.0 fabs(p系数)= EPS) {

if(p-power == 0) printf("- %.2lf ",-p-coefficient);

else if(p-power == 1) {

if(p系数= =-1.0)printf("-x ");

else printf("- %.2lfx ",-p-系数);

}

else if(p系数== -1.0) printf("- x^%d ",p次方);

else printf("- %.2lfx^%d ",-p系数,p次方);

}

p = p-next;

}

printf(" \ n ");

}

double Power(double x,int n) {

double值= 1.0;

int I;

for(I = 0;I n;I)值* = x;

返回值;

}

双值(多项式头,双x){//多项式求值

多项式p;

double值= 0.0;

for(p = head-next;p;p = p-下一个)

值= p-系数*幂(x,p-幂);

返回值;

}

多项式副本(多项式A) {

多项式头,t,p;

head = t =(pItem)malloc(sizeof(item));

for(p = A-next;p;p = p-next) {

t-next =(pItem)malloc(sizeof(item));

t-next-系数= p-系数;

t-next-power = p-power;

t = t-next;

}

t-next = NULL;

回程头;

}

多项式加法(多项式a,多项式b){//多项式加法

多项式头,p,q,t;

head = Copy(A);

for(p = B;p-next;p = p-next) {

q =头;

while(q-next) {

if(p-next-power = = q-next-power){

q-下一个系数= p-下一个系数;

if(fabs(q-next-coefficient)= EPS){

t = q-next;

q-next = t-next;

免费(t);

}

打破;

}

q = q-next;

}

if(q-next == NULL) {

q-next =(pItem)malloc(sizeof(item));

q-下一个系数= p-下一个系数;

q-next-power = p-next-power;

q-next-next = NULL;

}

}

排序(头);

回程头;

}

多项式减法(多项式a,多项式b){//多项式减法

多项式头,p,q,t;

head = Copy(A);

for(p = B;p-next;p = p-next) {

q =头;

while(q-next) {

if(p-next-power = = q-next-power){

q-下一个系数= p-下一个系数;

if(fabs(q-next-coefficient)= EPS){

t = q-next;

q-next = t-next;

免费(t);

}

打破;

}

q = q-next;

}

if(q-next == NULL) {

q-next =(pItem)malloc(sizeof(item));

q-下一个系数=-p-下一个系数;

q-next-power = p-next-power;

q-next-next = NULL;

}

}

排序(头);

回程头;

}

多项式乘法(多项式a,多项式b){//多项式乘法

多项式头,t,p,q;

head = t =(pItem)malloc(sizeof(item));

for(p = A-next;p;P = p-next) {//完成乘法过程。

for(q = B-next;q;q = q-next) {

t-next =(pItem)malloc(sizeof(item));

t-next-coefficient = p系数* q系数;

t-next-power = p-power q-power;

t = t-next;

}

}

t-next = NULL;

排序(头);//排序

p =头部;

While(p-next) {//合并相似项。

q = p-next;

while(q-next) {

if(p-next-power = = q-next-power){

p-下一个系数= q-下一个系数;

t = q-next;

q-next = t-next;

免费(t);

}

else q = q-next;

}

p = p-next;

}

回程头;

}

void FreeMemory(多项式头){

多项式q,p =头;

while(p) {

q = p;

p = q-next;

免费(q);

}

}

int main() {

Printf("创建多项式A:\ n ");

多项式A = Create();

排序(A);

printf(" A(x)=);展示(一);

Printf("创建多项式B:\ n ");

多项式B = Create();

排序(B);

printf(" B(x)=);显示(B);

多项式C =加法(A,B);

printf(" C(x)=);展示(C);

多项式D = Subtract(A,B);

printf(" D(x)=);显示(D);

多项式E =乘法(A,B);

printf(" E(x)=);显示(E);

printf(" A(%). 2 lf)= . 4lf \ n ",2.0,Value(A,2.0));

printf(" B(% . 2 lf)= " . 4lf \ n ",2.0,Value(B,2.0));

printf(" C(% . 2 lf)= " . 4lf \ n ",2.0,Value(C,2.0));

printf(" D(% . 2 lf)= " . 4lf \ n ",2.0,Value(D,2.0));

printf(" E(% . 2 lf)= " . 4lf \ n ",2.0,Value(E,2.0));

自由内存(A);

自由内存(B);

自由内存(C);

自由内存(D);

自由内存(E);

返回0;

}

多项式计算c语言程序设计 这个其实很简单。我们需要三个数组(暂且考虑int数组),长度都是10,分别存储多项式1和2以及计算结果。初始化为全0。根据你的假设输入。最后三个数组是:

多项式1: [7 1:[7,0,-5,2,0,0,0,0](x,0,0)(X的零次幂系数为7,X的一次幂系数为2,以此类推,下同)。

多项式2: [-8,1,3,0,0,0,0,0,0,0]

计算结果:[0,0,0,0,0,0,0,0,0](还没统计,当然都是0)

加减法很容易算,就不赘述了。乘法怎么算?按照真正的数学计算步骤来推就行了。你将3x2,x和-8分别乘以2x3-5x2 7,最后把结果加起来。转换成一个程序就是把几个数组加起来:

[-56, 0, 40, -16, 0, 0, 0, 0, 0, 0]

[0, 7, 0, -5, 2, 0, 0, 0, 0, 0]

[0, 0, 21, 0, -15, 6, 0, 0, 0, 0]

加起来就行了。

至于提高水平,这个题目不好,因为多项式除法的结果不唯一。比如2x2 1除以x2 1,你可以说2x2 1 = 2(x2 1)-1或者2x2 1 = 1(x2 1) x2。这样的题目数学意义不大,编程也达不到锻炼水平的效果。也许我误解了?

多项式C语言程序的介绍就说到这里吧。感谢您花时间阅读本网站的内容。别忘了在这个网站上搜索更多关于用C语言编程多项式的方法和多项式C语言程序的信息。

相关文章

发表新评论