ページ 1 / 1
関数についてです
Posted: 2010年5月08日(土) 12:42
by Gen
10個のデータがあり、平均と標準偏差を求めるプログラムを関数化するのですが全く分かりません。教えてください。ちなみにポインタは使えません。よろしくお願いします。
Re:関数についてです
Posted: 2010年5月08日(土) 12:44
by たかぎ
> ちなみにポインタは使えません。
だったら無理です。
Re:関数についてです
Posted: 2010年5月08日(土) 12:54
by ookami
関数化がわからないと言うことは、mainの中ならできたって事ですよね。
それを貼ってもらっていいですか?
まぁポインタが使えないならグローバルな配列にするしか…?
Re:関数についてです
Posted: 2010年5月08日(土) 13:07
by nishi
平均と標準偏差を含む構造体を定義して
関数の戻り値を構造体にすればポインタなしでも
可能だと思います。
Re:関数についてです
Posted: 2010年5月08日(土) 13:10
by たかぎ
> まぁポインタが使えないならグローバルな配列にするしか…?
ポインタが使えないなら配列も使えません。
*演算子も[/url]演算子も、オペランドにポインタを要求しますので。
そもそも、関数呼出し演算子自体がオペランドに関数へのポインタを要求しますから、関数を定義しても呼び出しができなくなります。
# せめて、利用規約をちゃんと守って、ていねいに質問してくれれば、ていねいに答える気にもなるのですが...

Re:関数についてです
Posted: 2010年5月08日(土) 13:12
by Dixq (管理人)
>Genさん
こんにちは。
ポインタは使えませんというのは、使い方がわかりません、という意味なのでしょうか、それとも宿題の制約上使ってはいけないということでしょうか?
ポインタを使ってはいけないなら、グローバル変数を使うとか、nishiさんの仰る方法にするとか方法はあるかもしれませんが、使った方が良いと思いますよ。
まず、どちらの方法で問題を解きましょうか?
Re:関数についてです
Posted: 2010年5月08日(土) 14:39
by Gen
ていねいに書いていなくてすいませんでした。nishiさんの言うように関数の戻り値を用いてプログラミングしたいです
Re:関数についてです
Posted: 2010年5月08日(土) 14:47
by たかぎ
コンストラクタを使えば関数呼出し演算子が不要なので、ポインタ無しで実現できる可能性があるかもと考えていたのですが...
> 関数の戻り値を用いてプログラミングしたいです
ということであれば絶望的ですね。
Re:関数についてです
Posted: 2010年5月08日(土) 15:00
by nishi
きっとこんな感じでしょうね。
各項目の型は必要に応じて変更してください。
struct info_t {
int heikin;
int hensa;
};
struct info_t func(int data1, int data2, 以下略)
{
struct info_t info;
info.heikin = (平均を計算);
info.hensa = (標準偏差を計算);
return info;
}
int main(void)
{
struct info_t info;
info = func(1, 2, 以下略);
return 0;
}