예제 #1
0
cnumber *cppolymul(cnumber p[],int m,cnumber q[],int n)
{
  int i,j,k=m+n-1;
  cnumber *cpval=(cnumber*)malloc(k*sizeof(cnumber));
  cnumber temp,*tp;
  for(i=0,tp=cpval;i<=k-1;i++,tp++)
  {
    tp->rpart=0.0;
    tp->ipart=0.0;
  }
  for(i=0;i<=m-1;i++)
    for(j=0;j<=n-1;j++)
    {
      temp=cpmul(p[i],q[j]);
      *(cpval+i+j)=cpadd(*(cpval+i+j),temp);
    }
    return cpval;
}
예제 #2
0
파일: cpmd0.c 프로젝트: Masshat/C_and_CPP
void main()
{
    int i;
    struct c_comp a[3], b[3], c[5], q[4], r[5];

    for (i = 0; i < 3; i++) {
        a[i].rmz = i + 1;
        a[i].imz = 2 * i + 1;
        b[i].rmz = i;
        b[i].imz = i + 1;
    }

    i = cpmul(a, 3, b, 3, c);     /* 调用多项式相乘的函数,并打印结果*/

    if (i) {
        printf("c=a*b:\n");

        for (i = 0; i < 5; i++) {
            printf("c[%d]=%2.1f+i*(%2.1f)\n", i, c[i].rmz, c[i].imz);
        }
    }

    i = cpdiv(c, 5, b, 3, q, 3, r, 5); /* 调用多项式相除的函数,并打印结果*/

    if (i) {
        printf("c/b--Q:\n");

        for (i = 0; i < 3; i++) {
            printf("q[%d]=%2.1f+i*(%2.1f) ", i, q[i].rmz, q[i].imz);
        }

        printf("\nc/b--R:\n");

        for (i = 0; i < 5; i++) {
            printf("r[%i]=%2.1f+i*(%2.1f)\n", i, r[i].rmz, r[i].imz);
        }
    }
}