• ベストアンサー

関数の呼び出し

Fookyの回答

  • Fooky
  • ベストアンサー率71% (59/82)
回答No.3

stanakaさんの仰るとおり,sum1,sum2の初期化がされてないのは 問題です.関数内で動的に割当てられた変数内には最初,不定値(何か 分からない値)が入っています.heikin()の中でやってるように, sum1=0.0; sum2=0.0;としましょう. あと,個人的に気になるのは,sum/Nです.Nは定数な訳ですが, 定数はどういう型として扱われるんでしょうね?もし,int型と 解釈された場合,sum/Nの演算は整数同士の演算として扱われ, 小数点以下は必ず0になると思います.神経質かもしれませんが, 私ならsum/(double)Nとしますね.

関連するQ&A

  • main関数を先頭に置くデメリット

    C言語で、main関数を先頭に置き、他の関数はプロトタイプ宣言だけ済ませて mainの後に置くという書き方に何かデメリットはあるのでしょうか。 何かの書籍で、「mainは先頭に置く方が何かと良い」と書いてあったので気になっています。

  • PowerShellの関数呼び出しについて

    PowerShellでの関数呼び出しでエラーとなります。 (定義より前にコールしているので当たり前なのですが) ********** (大まかな処理内容です) ********** call main() main() { 処理 } ******************************************************** 【質問1】  ・エラーを出さないようにする方法はないのでしょうか?   (例えばC言語のプロトタイプ宣言のような) <補足>  現在VBScriptで行っているバッチ処理をPowerShellに移行している初心者です。  色々検索はしましたが、答えが得られずの質問になります。  お時間がある時で構いませんので、ご回答をお願い致します。

  • 関数

    ファイルからデータを読み込んで処理するプログラムを作っているのですが、 分からないとこがあるのでアドバイスお願いします。 2:平均値、標準偏差を求める関数 3:特定の偏差値を求める関数 1:main関数 があるとします。偏差値を求めたいとき平均値と標準偏差を使用するので、 2の関数で求めた値を3の関数でも使えるようにするにはどうしたら良いのでしょうか?

  • インデックス関数の応用で・・・

    仕事で使うエクセルシートを作成中で困っております。 知恵を貸して下さい。 インデックス関数でいう行の値を返したいです。 列と交わる部分にはデータが入っており、 列が○○で、交わる部分に××が入っていれば、 行の値を返す。 このようにしたいのですが、 どのようにしたらよいでしょうか>< よろしくお願いします。

  • 構造体のアドレス渡し

    構造体をmain()からアドレス渡しで別関数(test.cpp)に渡し、その関数の中だけでの別関数test1()にその構造体を、値渡しでもアドレス渡しでも、渡せるのでしょうか? ちなみにmain.cppと、test.cppと、myhead.hとして分割コンパイルでやりました。 /*---------main.cpp--------*/ //ヘッダファイルで構造体宣言、test()のプロトタイプ宣言済み void main() { struct data dt[10]; ・・・・・・ test(dt); //test.cppのtest関数に構造体を渡す。 } /*---------test.cpp---------*/ void test1(??????); //test1()のプロトタイプ宣言 void test(struct data *p) //構造体をアドレス渡しで受け取った { ・・・・・ test1(?????); //test.cppで宣言したtest1関数に構造体を渡したい } どうかよろしくお願いします。

  • 関数のプロトタイプ宣言

    #include <stdio.h> #define N 3 #define M 4 int sum(int [][M]); (関数のプロトタイプ宣言) int main(){   ・   ・   ・ return(0); } int sum(int x[][M]){    ・    ・ } 以上のプログラムより、関数のプロトタイプ宣言や、関数内の 行列の定義でint sum(int [][M]);や int sum(x[][M]){}となっていますが なぜ、列にMだけを代入することだけでよいのでしょうか? また、教科書に関数のプロトタイプ宣言ではint sum(int [][]);だけでもよいと書かれていたのですが 実際、コンパイルしてみたところ 'int[]' 型のサイズは未知あるいはゼロとエラーがでました。 これは、コンパイラによってできるものとできないものがあるのでしょうか?? よろしくお願いします。

  • vlookup関数とHlookup関数の組み合わせ

    Excelの関数で、HLOOKUPやVLOOKUPがありますが、この 2つの関数を合わせた様な感じで、列の値と行の値の 2条件がマッチした値を別シートに作成した集計表から 取得させたいですがどの様にすればよいでしょうか。 質問が分かりにくいですがどうぞよろしくお願い致します。

  • COUNTIF関数がうまく行かないとき

    Excel 2013です。 37385行14列の表で、二つの列のデータが重複している行を抽出したいとなりました。 二つの列のデータは分類番号のようなもので、ゼロから始まるものもあるので文字列として入力された数字です。 そこで、その二列をCONCATENATE関数で繋いだ数字の並び(N列に配置)をCOUNTIF関数で調べる(O列)ことにしました。 すると、N列の値が異なるセルを同じとみなしてカウントしたようなO列の値がいくつか見られました。 そこで、N列のセルにNUMBERVALUE関数を追加し数値にしたところ、一見うまくいっているようにみえます。 これはなぜ起きたのでしょうか? また、臨んだ結果が得られていると確認する方法がありますでしょうか? N列は文字列のときは文字列長0~18までありました。 よろしくお願いします。

  • エクセルの関数についての質問です

    エクセルの関数についての質問です 独学でエクセルを勉強しておりますが以下のような表の中から該当する値を返すことは可能でしょうか。 方法はどのようなものでもアドバイスをいただければトライしてみようと思います。 以下のような元データの中から、行の条件と列の条件を満たすセルに表示されている値(%)を 表示させる関数。そもそも関数での解決は不可能かもしれませんが、もし方法があれば ご教示お願いします。       0000~1000  1001~2000  2001~3000 000~100    5%      5%      4% 101~200    4%      4%      3% 201~300    3%      2%      1% 行と列の値を入力するとその交差した値が表示させたい。 例)行の検索したい数値を110、列の検索したい数値を1200と指定した場合、表示させたい数値は"4%"。 ぜひぜひよろしくお願いいたします。

  • Excelの関数について

    Excelの関数について 私のExcelは2003です。 表を作っていて A列とB列に数値を入れてその合計をC列に自動的に出すようにするのは C列に「=SUM(A3,B3)」と入れますよね? 1日数回のデータを取り A列とB列に数値を入力し 1ヶ月ほどデータを取り続けるので その分C列に入れた関数を下へセルの右下にポインタを合わせて十字の記号を出して 下へ関数を入れたのですが その場合C列には0と表示されますよね? これは防げないものなのですか? 後、そのC列に表示された合計値を 次の行のA列に表示させたいのですが そういう関数はありますか? C列の合計値に次の数を足して、合計値をどんどん増やしていくので 例えばC1の値をそのままA2に表示。 C2の値をそのままA3に表示 C5の値をそのままA6に表示としたいのですが 関数があったら教えてほしいです。