C言語における多項式計算の実装方法

多項式計算をC言語で行うには、次の手順で使用できます。

  1. 多項式のデータ構造を定義し、多項式の各項を表すために配列または連結リストが使用できます。各項には係数と指数を含めることができます。
  2. struct Term {//項
    int coefficient;// 係数
    int exponent;// 指数
    };struct Polynomial {//多項式
    struct Term terms[MAX_TERMS];//項
    int count;//項数
    };
  3. ユーザーによる入力から多項式の係数と指数を取得し、多項式のデータ構造へ保存する入力関数を生成する。
  4. 関数 void input(Polynomial *poly) に多項式の次数を入力します。printf(“多項式の項数を入力してください:”);
    scanf(“%d”, &(poly->count));

    次に、各項の係数と次数を入力します。

    printf(“多項式の係数と指数を入力してください:\n”);
    for (int i = 0; i < poly->count; i++) {
    printf(“第%d項:”, i + 1);
    scanf(“%d %d”, &(poly->terms[i].coefficient), &(poly->terms[i].exponent));
    }

  5. 多項式の加算処理を行う関数をインプリメントし、2 つの多項式を加算してその結果を最初の多項式内に保存する。
  6. i、j、kを0に初期化します。その上で、iがpoly1の要素数未満かつjがpoly2の要素数未満である間、以下の処理を行います。

    – poly1のi番目の要素の次数がpoly2のj番目の要素の次数よりも大きい場合、poly1のi番目の要素をk番目の要素にコピーし、iを1増加させます。
    – poly1のi番目の要素の次数がpoly2のj番目の要素の次数よりも小さい場合、poly2のj番目の要素をk番目の要素にコピーし、jを1増加させます。
    – それ以外の場合は、poly1のk番目の要素の係数をpoly1のi番目の要素の係数とpoly2のj番目の要素の係数を足して更新し、指数をpoly1のi番目の要素の指数に設定します。その後、iとjを両方1増加させます。

    次に、iがpoly1の要素数未満である間、以下を行います。

    – poly1のi番目の要素をk番目の要素にコピーします。

    その後、jがpoly2の要素数未満である間、以下を行います。

    – poly2のj番目の要素をk番目の要素にコピーします。

    最後に、poly1の要素数をkに設定します。

  7. 多項式に掛け算関数を導入し、2 つの多項式を掛け合わせて、その結果を最初の多項式に格納する。
  8. for (int i = 0; i < poly1->count; i++) {
    for (int j = 0; j < poly2->count; j++) {
    temp.terms[temp.count].coefficient = poly1->terms[i].coefficient * poly2->terms[j].coefficient;
    temp.terms[temp.count].exponent = poly1->terms[i].exponent + poly2->terms[j].exponent;
    temp.count++;
    }
    }
  9. 多項式の値を画面に出力する関数を実装する
  10. void display(Polynomial *poly) {
    printf(“多項式の項数:%d\n”, poly->count);for (int i = 0; i < poly->count; i++) {
    printf(“%dx^%d “, poly->terms[i].coefficient, poly->terms
bannerAds