2016-11-08 29 views
0

私は構造体を含む関数を記述するためにIntro to Cテストを勉強しています。質問は関数の記述のみを求めていますが、実行するコード全体を記述したいので、数値を入れてコードが正しく実行されているかどうかを確認することができます。私は関数を正しく書いたと思う、私はちょうど数字をコード化する方法を知らないし、数字を印刷する。構造体と関数をC言語で記述するプログラム

これは質問です。ここで

The question.

私は上記の質問のために書かれたものです。

struct complex_numb Add_Complex(struct complex_numb C1, struct complex_numb C2){ 

struct complex_numb C3; 

C3.real = C1.real + C2.real; 
C3.imaginary = C1.imaginary + C2.imaginary; 

return (C3); 

}; 

まだtypedefは使用されていません。

私はそれがこのようなものだと思っていましたが、それは働いていません。

#include <stdio.h> 

struct complex_numb Add_Complex(struct complex_numb C1, struct complex_numb C2); 

int main(){ 

struct complex_numb{ 
    float real; 
    float imaginary; 
}; 

Add_Complex(1,2,3,4); 

printf("%f %f", C3.real, C3.imaginary); 

} 

struct complex_numb Add_Complex(struct complex_numb C1, struct complex_numb C2){ 

struct complex_numb C3; 
C3.real = C1.real + C2.real; 
C3.imaginary = C1.imaginary + C2.imaginary; 


return (C3); 

}; 
+1

なぜAdd_Complexのパラメータとして4つのものを渡していますか? –

+1

C1構造とC2構造を作成せず、それらを 'Add_Complex()'に渡しています。あなたは未定義の振る舞いを呼び出しているので、あなたのコンパイラはあなたを驚かせるはずです。そうでない場合は、より多くのコンパイル警告をオンにする必要があります(または、より良い/より新しいコンパイラを入手する必要があります)。 –

+0

2つの実数と2つの虚数があるので、4つの数はありませんか?それは私の論理でした。私はまだ関数と構造体について学んでいるので、どのようにまとめられているかについては本当に確信していません。 – beginner

答えて

0

あなたのC1とC2を作成し、あなたの構造体の内部の属性にそれらの値を追加し、「C3」と呼ばれるcomplex_numbのあなたのリターンオブジェクトを作成し、持っている=そのC1にとる関数呼び出しの結果にC2。 typedefを使って構造体を変更し、mainからそれを移動しました。

#include <stdio.h> 

typedef struct { 
     float real; 
     float imaginary; 
    }complex_numb; 

complex_numb Add_Complex(complex_numb C1, complex_numb C2); 

    int main() 
    { 
     complex_numb C1; 
     C1.real = 1; 
     C1.imaginary = 2; 
     complex_numb C2; 
     C2.real = 3; 
     C2.imaginary = 4; 

    //Add_Complex(1,2,3,4); 
    complex_numb C3; 
    C3 = Add_Complex(C1,C2); 
    printf("%f %f", C3.real, C3.imaginary); 

    } 

complex_numb Add_Complex(complex_numb C1, complex_numb C2){ 

    complex_numb C3; 
    C3.real = C1.real + C2.real; 
    C3.imaginary = C1.imaginary + C2.imaginary; 


    return (C3); 

    } 
0

実際のパラメータと仮パラメータは一致しません。また、c3を返すときは、構造体を保存してから内容を印刷してください。

関連する問題