複素数の四則演算(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”の...
-
C 開放してるのにエラー(doubl...
-
C言語 関数プロトタイプ宣言の...
-
数値を指数部と仮数部に分離したい
-
学校の課題で2次方程式のプログ...
-
関数におけるif文とreturn文に...
-
C言語を実行すると-infが出てき...
-
float型とdouble型の変数の違い...
-
C言語で表記についの質問です
-
指数の表示
-
2分法で方程式の複数の解を自...
-
doubleは常に%lfとするべきなのか
-
物体が往復する動きを作りたい
-
C言語で内積、、、わかりません。
-
c言語のコンパイルエラー canno...
-
C言語のpow関数の不具合
-
処理時間計測
-
float?数字の後にLがつくもの
-
「割り算」 と 「分数の掛け算」
-
C++標準ライブラリィーのcomple...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
float型とdouble型の変数の違い...
-
doubleの変数にintとintの割り...
-
C言語を実行すると-infが出てき...
-
C 開放してるのにエラー(doubl...
-
至急です! マクロ定義で #defi...
-
c言語で、繰り返し文の中で、0....
-
関数におけるif文とreturn文に...
-
C言語 関数プロトタイプ宣言の...
-
C言語初心者 構造体 課題について
-
C言語の型による処理速度の違い
-
Cで3乗根を求める方法
-
C言語で-23乗を取り扱うには
-
2分法で方程式の複数の解を自...
-
doubleは常に%lfとするべきなのか
-
c言語のコンパイルエラー canno...
-
C言語で直角三角形の斜辺を求め...
-
C言語のプログラムで#include<m...
-
int とdoubleの比較
-
C++で外積
おすすめ情報