このプログラムは、2 つの多項式を加算して結果を出力するためのものです。
乗数を配列に格納し、インデックス az をパラメーターのべき乗として使用するだけです。
合計と減算を行いますが、積に関しては印刷します
0x0 0*x2 0*x3 ...
これは基本的な C プログラミングのクラス用で、3 時間以内にマスターに渡す必要があります :-(
配列で乗数を取得し、いくつかの関数を使用して結果を計算します。
#include <stdio.h>
#include <stdlib.h>
double a[50], b[50], c[101];
int dega, degb;
SumArray (a, b)
double a[], b[];
{
extern int dega, degb;
extern double c[];
int i, max = (dega < degb ? degb : dega) + 1;
for(i = 0; i < max; i++)
c[i] = a[i] + b[i];
}
SubtractArray(a, b)
double a[], b[];
{
extern int dega, degb;
extern double c[];
int i, max = (dega < degb ? degb : dega) + 1;
for (i = 0; i < max; i++)
c[i]=a[i]-b[i];
}
ProductArray(a, b)
double a[], b[];
{
extern int dega, degb;
extern double c[];
int i,j;
double tempa, tempb;
for(i = 0; i < dega + 1; i++)
for(j = 0; j < degb + 1; j++)
{
tempa = a[i];
tempb = b[j];
c[i + j] = c[i + j] + (tempa * tempb);
}
}
int main()
{
extern int dega, degb;
extern double a[50], b[50], c[]; //stores the multipliers
int i, operation;
for(i = 0; i < 50; i++)
a[i] = b[i] = 0;
for(i = 0; i < 102; i++)
c[i] = 0;
printf("darjeye chand jomleee ha ra vared konid");
scanf("%d %d", °a, °b);
printf("zarayebe chand jomlee aval ra vaerd konid");
for(i = 0; i < dega + 1; i++)
scanf("%d", &a[i]);
printf("zarayebe chand jomlee dovoom ra vaerd konid");
for(i = 0; i < degb + 1; i++)
scanf("%d", &b[i]);
printf("amaliyate morede nazartan ra vare konid baraye jame 0, tafrigh 1, zarb 2 ra vared konid");
scanf("%d", &operation);
switch(operation)
{
case 0:
{
SumArray(a,b);
for (i = 0; i < (dega > degb ? dega : degb) + 1; i++)
{
printf(" %d*x", c[i]);
printf("%d ", i);
}
break;
}
case 1:
{
SubtractArray(a,b);
for (i = 0; i < (dega > degb ? dega : degb) + 1; i++)
{
printf(" %d*x", c[i]);
printf("%d ", i);
}
break;
}
case 2:
{
ProductArray(a,b);
for(i = 0; i < (dega + degb + 1); i++)
{
printf("\%d*x", c[i]);
printf("%d ", i);
}
break;
}
default:
printf("amaliyate vared shode sahih nabud");
}
system("PAUSE");
return 0;
}