C言語関係掲示板

過去ログ

No.956 エラー:実引数が少なすぎます

[戻る] [ホームページ]
No.12373

お願いします。
投稿者---パンドラ(2004/01/31 18:18:31)


私が扱っているプログラムを
コンパイルすると
「error C2198: 'pow' : 実引数が少なすぎます。」

「error C2198: 'fabs' : 実引数が少なすぎます。」
というエラーが発生します。
「実引数が少なすぎる」というのが
いまいち理解できません。
どうか教えてください。

No.12374

Re:お願いします。
投稿者---もぐりん(2004/01/31 18:37:09)


まず、あなたのコンパイル環境を教えてください。
そして、コンパイルしたソースを提示ください。
そうすれば、回答が付き易いでしょう。
おそらく、"pow"や"fabs"という関数に渡す引数の数が不足しているのでは?
本来5個必要なところに、3個しか渡していないとか・・・。



No.12375

Re:お願いします。
投稿者---senshou(2004/01/31 18:42:58)


>私が扱っているプログラムを
>コンパイルすると
>「error C2198: 'pow' : 実引数が少なすぎます。」
>や
>「error C2198: 'fabs' : 実引数が少なすぎます。」
>というエラーが発生します。
>「実引数が少なすぎる」というのが
>いまいち理解できません。
>どうか教えてください。

pow(a, b)でaのb乗という意味です。
pow(2, 3)のように2個の値(この関数に渡す値のことを実引数という、この例で言えば2と3)を渡して、初めて2の3乗を計算してくれます。
「実引数が少なすぎる」というのは渡した値が0個または1個なのでしょう。
pow(5)とされてもコンピュータさんは何をすればいいのかわかりません。

fabs()も同様だと思います。
fabs(x)という風に使うので、実引数は1個必要です。
多分、パンドラさんは
fabs();
と使ってしまったのではないのでしょうか。

No.12376

Re:お願いします。
投稿者---焼きたて(2004/01/31 18:43:43)


>私が扱っているプログラムを
>コンパイルすると
>「error C2198: 'pow' : 実引数が少なすぎます。」
>や
>「error C2198: 'fabs' : 実引数が少なすぎます。」
>というエラーが発生します。
>「実引数が少なすぎる」というのが
>いまいち理解できません。
>どうか教えてください。

pow関数とfabs関数に渡している引数を確認して見て下さい。
小さすぎると思います。
ここで関数の説明を読んで見てください。
http://www.bohyoh.com/CandCPP/C/Library/pow.html
xが負でyが整数値でない場合、定義城エラーが発生する。
xが0かつyが0以下で結果が表現できない場合、定義域エラーが発生する。
の二つのうちどちらかに当てはまっていませんか?

No.12377

Re:お願いします。
投稿者---パンドラ(2004/01/31 18:59:28)


ありがとうございました。
質問に答えてくださったみなさんに
感謝します。
とりあえず、問題は解決しました。
私の勉強不足が原因です。
もっと勉強します。


No.12378

Re:お願いします。
投稿者---NykR(2004/01/31 19:07:43)


>http://www.bohyoh.com/CandCPP/C/Library/pow.html
>xが負でyが整数値でない場合、定義城エラーが発生する。
>xが0かつyが0以下で結果が表現できない場合、定義域エラーが発生する。
>の二つのうちどちらかに当てはまっていませんか?

その場合は、関数がエラーを返すだけで、コンパイルエラーになる訳ではありません。

No.12384

Re:お願いします。
投稿者---焼きたて(2004/01/31 22:01:00)


>>http://www.bohyoh.com/CandCPP/C/Library/pow.html
>>xが負でyが整数値でない場合、定義城エラーが発生する。
>>xが0かつyが0以下で結果が表現できない場合、定義域エラーが発生する。
>>の二つのうちどちらかに当てはまっていませんか?
>
>その場合は、関数がエラーを返すだけで、コンパイルエラーになる訳ではありません。

二つのうちどちらかに当てはまるかを確認してほしかったのですが、何か不備がありましたでしょうか?

No.12386

Re:お願いします。
投稿者---YuO(2004/01/31 22:44:05)


>>>http://www.bohyoh.com/CandCPP/C/Library/pow.html
>>>xが負でyが整数値でない場合、定義城エラーが発生する。
>>>xが0かつyが0以下で結果が表現できない場合、定義域エラーが発生する。
>>>の二つのうちどちらかに当てはまっていませんか?
>>その場合は、関数がエラーを返すだけで、コンパイルエラーになる訳ではありません。
>二つのうちどちらかに当てはまるかを確認してほしかったのですが、何か不備がありましたでしょうか?

「少ない」と「小さい」の区別が付いていますか?
定義域エラーが出るのは小さいから,コンパイルエラーが出るのは少ないからです。

定義域エラーは数学的な定義域外の値を指定されたときのエラーで,
errnoにEDOMが設定されます。
pow関数だとpow(0, -1.2);のような呼び出しを行ったときのものです。

エラーは引数の数が不足しているのですから例えば,
pow(0);のような記述をしたときのものです。