C语言程序运算

来源:百度知道 编辑:UC知道 时间:2024/06/18 07:33:24
q1=a1+a2x+a3x^2+a4x^3+……anx^n
q2=b1+b2x+b3x^2+b4x^3+……bmx^m
求q1+q2和q1*q2
(输入系数a[]和b[],指数m,n的值)
请高手帮忙???
用数组写 程序代码

本题的一个完整的c程序如下,在win-tc和Dev-c++下调试通过。需要说明的是这里的m,n表示x的幂分别是m-1次和n-1次,同时p[]和q[]的各系数是从x^(m-1)和x^(n-1)到x^0前的系数,和你上面的写法正好相反,所以输入时要注意:
/*多项式乘法程序*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#define MAX 50

void npmul(p,m,q,n,s)
int m,n;
double p[],q[],s[];
{
int i,j;
for (i=0; i<=m-1; i++)
for (j=0; j<=n-1; j++)
s[i+j]=s[i+j]+p[i]*q[j]; /*迭代计算各项系数*/
return;
}

double compute(s,k,x) /*计算所给多项式的值*/
double s[];
int k;
float x;
{
int i;
float multip = 1;
double sum = 0;
for (i=0;i<k-1;i++)
multip = multip * x; /*先求出x的最高次项的值*/
for (i=0;i<=k-1;i++)
{
sum = sum + s[i] * multip; /*依次从高到低求出相对应次项的值*/
if (x!=0)
multip = multip / x;
}
return sum;
}

void main()
{
int i,j,m,n;
double px[MAX],qx[MAX]