ページ 11

関数の宣言

Posted: 2010年12月19日(日) 23:06
by ぎゃらくし
下記のような関数宣言をしたところ、次のようなエラーが出ました。
どなたか、その意味と対策を教えて下さい

double Distance ((double a),(double b),(double c),(double d)){
double k;
k=sqrt( (a-b)^(2.0)+(c-d)^(2.0) );
return k;
}


Error E2293 07.c 11: ) expected

Re: 関数の宣言

Posted: 2010年12月19日(日) 23:22
by ぬっち
^が入っていますが、これは2乗のつもりでしょうか?
^はC言語ではxor演算子です。

2乗したいのなら素直に、a*aのようにするべきです。

Re: 関数の宣言

Posted: 2010年12月19日(日) 23:34
by box
ついでに言っておくと、
kなんていう中間的な変数や、引数を囲むよけいなカッコはいらなくって、単純に

コード:

double Distance(double a, double b, double c, double d)
{
    return sqrt((a - b) * (a - b) + (c - d) * (c - d));
}
でじゅうぶんかと。

Re: 関数の宣言

Posted: 2010年12月19日(日) 23:35
by bitter_fox
ぎゃらくし さんが書きました:double Distance ((double a),(double b),(double c),(double d)){
double k;
k=sqrt( (a-b)^(2.0)+(c-d)^(2.0) );
return k;
}
Error E2293 07.c 11: ) expected
ぬっちさんが書いてらっしゃるように、演算子^はXOR演算を示します。
また、
Distance((double a), ...)
といったように、引数に括弧を使って宣言するのは、不正です。
以下のようにしてください。
double Distance(double a, double b, double c, double d)
[hr][追記]
boxさんとかぶりましたね。。。
[追記]
エラーの意味が抜けていましたね。

コード:

Error          :エラー
E2293          :エラー番号2293
07.c           :07.cというファイルの
11             :11行目で
) expected     :)が予期されました。

Re: 関数の宣言

Posted: 2010年12月22日(水) 13:08
by naohiro19
math.hにあるpow関数を使うのも手です。