複素数の四則演算(a+biとc+diの四則演算)について、for文を用いて表示するプログラムについて、???の部分に何を入れたらよいかわからず、うまく実行することができません。和・差・積・商の計算種別を入れるみたいなのですが、何を入れたらいいのかわかりません。
#include <stdio.h>
void fukuso(double a,double b,double c,double d,double *e,double *f,int keisan);
int main(void)
{
double a=4, b=8, c=4, d=3, e, f;
int i;
for(i=1;i<5;i++){
fukuso(a,b,c,d,&e,&f,???);
if(i==1) printf("和演算\n");
else if(i==2) printf("差演算\n");
else if(i==3) printf("積演算\n");
else printf("商演算\n");
printf("e=%f f=%f i\n",e,f);
}
return (0);
}
void fukuso(double a1,double b1,double a2,double b2,double *a3,double *b3,int keisan)
{
if(keisan==1){
*e=a+c;
*f=a+c;
}
else if(keisan==2){
*e=a-c;
*f=b-d;
}
else if(keisan==3){
*e=a*c-b*d;
*f=a*d+c*b;
}
else{
*e=(a*c+b*d)/(c*c+d*d);
*f=(-a*d+c*b)/(c*c+d*d);
}
}
No.2ベストアンサー
- 回答日時:
まず、for文が何であるかをご理解いただく必要があると思います。
for文は【変数の初期値;実行条件;変数の増加量】と定義し、{ }の中身を実行 → 変数増加 → { }の中身を実行…という動作を実行条件が真である間繰り返し処理するためのものです。
たとえば、
/* printfを10回繰り返す処理 */
for( k = 0 ; k < 10 ; k++ )
{
printf( "%d", k );
}
という構文を言葉で表すと
#1.k の最初の値は 0 です。
#2.k が 10 未満であればカッコの中を実行して戻ってきなさい。
#3.カッコの中に入ったら k の値を printf で出力しなさい。
#4.戻ってきたら k に 1 を加えて #2 から処理を繰り返しなさい。
となり、printf の出力結果は順に 0、1、2、(中略)…9 となります。
( k の値は最終的に 10 になりますが、上記の #2 の条件から外れてしまうため{ }の中へは入らずに繰り返し処理を終了します)
このfor文の変数を応用するやり方は何かを順番で処理する場合によく使われます。
以上を踏まえれば ??? に何が入るべきかおわかりになると思うのですが、いかがでしょうか。
計算種別がiであることに気づかなかったのですが、Wakkey-sanさんの回答で気づくことができ、プログラムが正常に起動しました。ありがとうございました。
No.1
- 回答日時:
C言語で四則演算を行うには、
#include <complex.h>
double complex fukuso(double complex lhs, double complex rhs, int keisan)
{
double complex result;
switch (keisan)
{
case 1:
result = lhs + rhs;
break;
case 2:
result = lhs - rhs;
break;
case 3:
result = lhs * rhs;
break;
default:
result = lhs / rhs;
break;
}
return result;
}
で十分な気がします。
なお、古い規格に基づいた処理系では上記のようにはできません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# C言語のマクローリン展開ローラン展開のコードについて 3 2022/12/15 14:45
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# LU分解法のピボッティングについて(C言語/gcc-9) 3 2022/07/11 23:10
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# LU分解法のピボット選択機能実装について(C言語・gcc-9) 1 2022/07/22 15:20
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
doubleの変数にintとintの割り...
-
C言語 関数プロトタイプ宣言の...
-
至急です! マクロ定義で #defi...
-
C言語を実行すると-infが出てき...
-
C 開放してるのにエラー(doubl...
-
関数におけるif文とreturn文に...
-
ax^2+bx+c=0の解を求めたいので...
-
float型とdouble型の変数の違い...
-
ガウスの消去法を用いたC言語...
-
C言語で-23乗を取り扱うには
-
c++について質問です
-
型について
-
方程式を2分法を用いて解くプロ...
-
【C言語】二階微分方程式をル...
-
浮動小数点数が表示されないん...
-
C言語の複素数についてです。
-
2次方程式の解
-
配列を戻り値にして逆行列を求...
-
C言語
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
C言語を実行すると-infが出てき...
-
float型とdouble型の変数の違い...
-
doubleの変数にintとintの割り...
-
c言語で、繰り返し文の中で、0....
-
C言語 関数プロトタイプ宣言の...
-
関数におけるif文とreturn文に...
-
C 開放してるのにエラー(doubl...
-
C言語の型による処理速度の違い
-
至急です! マクロ定義で #defi...
-
doubleは常に%lfとするべきなのか
-
Cで3乗根を求める方法
-
-1.#IND00と出てしまうのですが...
-
C言語で-23乗を取り扱うには
-
C++で外積
-
2次方程式の解を求めるプログ...
-
方程式を2分法を用いて解くプロ...
-
ニュートン法
-
c言語のコンパイルエラー canno...
-
difftime()について
おすすめ情報