C言語関係掲示板

過去ログ

No.332.平均を計算する関数

[戻る] [ホームページ]

No.2099

どなたか救いの手を・・・
投稿者---C言語ド素人10段(2002/07/17 00:31:28)


こんばんわ。前回こちらで親切な方から回答頂きありがとうございました。
図々しくも2度目の投稿させて下さい(-_-;)
以下は期末の課題です。

(問題)
実数型の一次元配列データ10個のa[0]〜a[9]をキー入力し、
平均値を計算する1個の関数heikin=mu(a)にしたプログラムを作成せよ。

(プログラムの流れ)ヒント?として
変数の配列宣言;  a[N+1]
キー入力a[0]〜a[9]; scanf
平均値の関数;  heikin=mu(a)
計算結果の表示; printf
終了

と書かれています。
毎度こちらに頼ってしまってほんとうに申し訳ありませんが
しょーもない輩を助けると思って是非お願いします。

他にあと2題計3問あります。本当すみませんです。





No.2100

Re:どなたか救いの手を・・・
投稿者---RYO(2002/07/17 01:15:53)


#include <stdio.h>

#define N 9

double  mu(int *x){
        double  y=0;
        int i;
        for(i=0;i<5;i++)
             y+=x[i];


        y/=(N+1);
        return(y);
}

void  main(void)
{
        int     a[N+1],i;
        double  heikin;
        
        for(i=0;i<N+1;i++){
                printf("a[%d]=",i);
                scanf("%d",&a[i]);
        }
        
        heikin=mu(a);
        
        printf("平均は%lf\n",heikin);
}


初めて書きこみさせてもらいます。自分の勉強も兼ねて答えさせてもらいます。
こんなもんでいいんでしょうか。変なところあれば修正お願いします。
あと、できれば丸投げはやめませんか?
せめて自分で考えたところくらいまでは提示しましょう・・

No.2102

早速のレスありがとうございます
投稿者---C言語ド素人10段(2002/07/17 01:41:58)


>あと、できれば丸投げはやめませんか?
>せめて自分で考えたところくらいまでは提示しましょう・・


恐縮なんですが私も自分の考えを提示したいのは山々です。
授業で二次元配列だとかになってから全然分からなくて
提示できないのが現状です。ごめんなさい。

あと回答助かりました!
C言語が家のパソコンからじゃ出来ないので
学校で試してみます。



No.2103

Re:早速のレスありがとうございます
投稿者---hon(2002/07/17 02:17:48)


>>あと、できれば丸投げはやめませんか?
>>せめて自分で考えたところくらいまでは提示しましょう・・
>
>
>恐縮なんですが私も自分の考えを提示したいのは山々です。
>授業で二次元配列だとかになってから全然分からなくて
>提示できないのが現状です。ごめんなさい。
>

教わったところが理解できないのは人それぞれだけど、だからといって丸投げが正当化されるわけじゃないよね。課題がまったくわからないんだったら、まず参考書を読むか先生に直に聞くべきだと思うよ。
自分で調べて理解しようとする姿勢が大切なんじゃないのかな?


No.2104

Re:早速のレスありがとうございます
投稿者---snow(2002/07/17 09:21:34)


>>あと、できれば丸投げはやめませんか?
>>せめて自分で考えたところくらいまでは提示しましょう・・
>
>
>恐縮なんですが私も自分の考えを提示したいのは山々です。
>授業で二次元配列だとかになってから全然分からなくて
>提示できないのが現状です。ごめんなさい。
>
>あと回答助かりました!
>C言語が家のパソコンからじゃ出来ないので
>学校で試してみます。
>

ども、snowです。
ネットが出来るなら自宅でも環境を作ってはいかがでしょうか?
高速回線ならbccを落とすのも簡単ですし、C言語の雑誌にも付いてたりしますよ。
エディタもいろいろな種類があります。
別にMSC++のみがソフトではないですよ。

最後に、解らなくなるには原因があるはずです。
もうすぐ夏休みですし、ここで1から勉強しなおしてはいかがですか?


No.2110

ご忠告、アドバイス
投稿者---C言語ド素人10段(2002/07/18 00:27:17)


どうもありがとうございました!!m(__)m

snow様
>ネットが出来るなら自宅でも環境を作ってはいかがでしょうか?
>高速回線ならbccを落とすのも簡単ですし、C言語の雑誌にも付いてたりしますよ。
パソコン素人でもあるのでそいういう物の存在も知りませんでした。
なるほど、ありがとうございます。

レスくれた皆様
だめだめ学生っぷりを自ら露呈してお恥ずかしい限りです。
実はC言語を専門とする者ではないのですが
門外漢のクセに学校のカリキュラムと単位の取り易さ上
C言語の講義を受講しています。
(変な学校ですよねー)
ですが耳が痛いお言葉を頂いてだめ精神を
ここらで叩き直してみようと思います!
考えて分からない場合是非ご教授頂けたら幸いデス。では

No.2105

Re:どなたか救いの手を・・・
投稿者---凹(2002/07/17 12:08:51)


#include    <stdio.h>
#define N   10

    double  mu(int *x){
        double  y=0;
        int     i;

        for(i=0;i<N;i++){
            y=y+*(x+i);
        }

        y=y/(N);
        return(y);
    }

void    main(void)
{
        int     a[N],i;
        double  heikin;

        for(i=0;i<N;i++){
            printf("a[%d]=",i+1);
            scanf("%d",&a[i]);
        }

        heikin=mu(a);
        printf("平均は%3.1f点\n",heikin);
}

実行結果が変だったので直してみました。
どうですか?


No.2112

Re:どなたか救いの手を・・・
投稿者---omochi(2002/07/18 10:55:04)


>実数型の一次元配列データ10個のa[0]〜a[9]
と、書いてあるのでa[N]はintよりもdoubleの方が良いとおもうのですが。
>(プログラムの流れ)ヒント?として
>変数の配列宣言;  a[N+1]
ともかいてありますから、
凹さんのをコピペさせて頂いて・・・。

#include    &ltstdio.h>
#define N   9

    double  mu(double *x){
        double  y=0;
        int     i;

        for(i=0;i<=N;i++){
            y=y+*(x+i);
        }

        y=y/(N+1);
        return(y);
    }

void    main(void)
{
        double  a[N+1];
        double  heikin;
        int i;

        for(i=0;i<=N;i++){
            printf("a[%d]=",i+1);
            scanf("%lf",&a[i]);         /* 型指定文字は%エルエフです */
        }

        heikin=mu(a);
        printf("平均は%fです\n",heikin);
}


という感じではいかがなもんでしょうか?