Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

【C言語】構造体を関数に渡して2つの複素数を加算する方法

C言語で2つの複素数を加算するには、複素数の実部(real)と虚部(imag)を構造体のメンバーとして定義し、ユーザー定義関数を作成してその中で加算処理を行います。構造体を関数に渡すことで、複素数をひとまとまりのデータとして扱えるようになり、プログラム全体が読みやすく整理されます。

複素数加算のアルゴリズム

2つの複素数を加算する際の基本的な流れは以下の通りです。

  1. 実部と虚部をデータメンバーとして持つ struct complex を宣言します。
  2. typedef で構造体に名前を付け、必要な変数を宣言します。
  3. 実行時に1つ目の複素数の実部と虚部を入力します。
  4. 実行時に2つ目の複素数の実部と虚部を入力します。
  5. 関数を呼び出して2つの複素数の加算を行います。
  6. 計算結果を出力します。

関数内での加算処理は次の手順で行われます。

  • 結果を格納する一時変数 temp を宣言します。
  • temp.real = num1.real + num2.real; ―― 実部同士を加算します。
  • temp.imag = num1.imag + num2.imag; ―― 虚部同士を加算します。
  • return (temp); で計算結果を返します。

サンプルプログラム

以下は、構造体を関数に渡して2つの複素数を加算するCプログラムです。

#include <stdio.h>

typedef struct complex {
    float real;   /* 実部 */
    float imag;   /* 虚部 */
} complex;

complex addition(complex num1, complex num2);

int main() {
    complex num1, num2, value;

    printf("1つ目の複素数の実部と虚部を入力してください:\n");
    scanf("%f %f", &num1.real, &num1.imag);

    printf("2つ目の複素数の実部と虚部を入力してください:\n");
    scanf("%f %f", &num2.real, &num2.imag);

    value = addition(num1, num2);
    printf("結果 = %.1f + %.1fi\n", value.real, value.imag);

    return 0;
}

complex addition(complex num1, complex num2) {
    complex temp;
    temp.real = num1.real + num2.real;
    temp.imag = num1.imag + num2.imag;
    return (temp);
}

実行結果

上記のプログラムを実行すると、以下のように出力されます。

1つ目の複素数の実部と虚部を入力してください:
3.0 4.0
2つ目の複素数の実部と虚部を入力してください:
1.0 2.0
結果 = 4.0 + 6.0i

プログラムのポイント

  • typedef の活用: typedef を使うことで、構造体変数を宣言する際に struct キーワードを省略でき、コードが簡潔になります。
  • 構造体の値渡し: 関数には構造体が値としてコピーされるため、呼び出し元の変数は変更されません。計算結果は戻り値として受け取ります。
  • 複素数の加算: 実部と虚部をそれぞれ個別に足し合わせるだけで計算できるため、ロジックが非常にシンプルです。
  1. OpenOffice CalcのSUM関数で数値の列・行を合計する3つの方法

    知っておきたいポイント結果を表示するセルを選択し、SUM(Σ)ボタン→Enterキーを押すと、近隣の列や行が自動的に合計されます。必要に応じて範囲を変更できます。または、FXキー→「分類」→「数学」を選択し、「関数」から「SUM」→「次へ」と進んで、加算するセルを選択します。もう1つの方法として、計算したいデータ範囲に対してSUM関数を直接入力することもできます。例:=SUM(A1:A6)この記事では、OpenOffice Calc(バージョン4.1.6)において、SUM関数を使って行や列の数値を合計するさまざまな方法を詳しく解説します。OpenOffice CalcのSUM関数SUM関数を入

  2. Windows 11に言語を追加する方法|表示言語の変更手順をわかりやすく解説

    Windows 11への言語追加について Microsoftの発表によると、Windows 11はWindows 10ユーザー向けに無料アップグレードとして提供されました。これにより、Windows 11のハードウェア要件を満たしているPCであれば、誰でも無料で最新バージョンへ移行できます。新しいWindowsには、ゲームやアプリの実行など、PCでの作業をより快適にする数多くの新機能が搭載されています。 たとえば、Windows 11ではユーザーインターフェースが完全に刷新され、タスクバー中央に配置された新しいスタートボタンと、デザインが一新されたスタートメニューが大きな特徴となっています。ま