2つの複素数の和と差を計算することはできません。C関数が正しく機能しない
#include <stdio.h>
void sum_diff(double *r3, double *i3, double *r4, double *i4);
int main()
{
double r3, i3, r4, i4, s3, s4, d3, d4;
printf("Enter r3 and i3 where r3 + i3 is the first complex number.\n");
printf("r3 = ");
scanf("%lf", &r3);
printf("i3 = ");
scanf("%lf", &i3);
printf("Enter r4 and i4 where r4 + i4 is the second complex number.\n");
printf("r4 = ");
scanf("%lf", &r4);
printf("i4 = ");
scanf("%lf", &i4);
sum_diff(&r3, &i3, &r4, &i4);
printf("The sum of the two complex numbers = %.3lf + %.3lf\n.", s3, s4);
printf("The difference of the two complex numbers = %.3lf - %.3lf\n.", d3, d4);
return 0;
}
void sum_diff(double *r3, double *i3, double *r4, double *i4)
{
double s3, s4, d3, d4;
s3 = *r3 + *r4;
s4 = *i3 + *i4;
d3 = *r3 - *r4;
d4 = *i3 - *i4;
}
「作業していない」、またはエラーが表示された場合は、ご記入ください。コンパイルエラーが発生していると推測します。 – TenG
曖昧な説明をお詫び申し上げます。つまり、基本的にはCodeBlocksで実行し、複素数を入力するように促します。合計と差は計算されていません。それは私に "2つの複素数の合計= 0.000 + 0.000です。"私の参照がvoid関数で正しくないので、それはありますか? – lg713
あなたは実際には和と差を計算しています...あなたはそれらを使って何もしていないか、main()に戻しているだけです。'sum_diff()'の 's3'、' s4'などは、 'main()'と同じ変数ではありません。その関数の各呼び出し、実際に)。 – Dmitri