1次元配列を利用する関数について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
haruka
記事: 2
登録日時: 10年前

1次元配列を利用する関数について

#1

投稿記事 by haruka » 10年前

実行結果が0.000000と表示されます。
どうやったらちゃんとした数字が表示されるのか教えてください。

コード:

#include<stdio.h>
int avg_score(int x[10]);
int main(void)
{
  int a[10]={0,2,1,1,4,4,0,2,0,6};
  int b[10]={1,3,1,0,6,3,1,2,1,0};

  double avga,avgb;
  int wina,winb;
  
  avg_score(a);
  avg_score(b);
    
  printf("チームaの平均得点は%f\n",avga);
  printf("チームbの平均得点は%f\n",avgb);


}

int avg_score(int x[10])
{
  int i,sum=0;
  int avg;
  for(i=0;i<10;i++){
    sum+=x[i];
  }
  avg=sum/10;
  return avg;
}

box
記事: 2002
登録日時: 15年前

Re: 1次元配列を利用する関数について

#2

投稿記事 by box » 10年前

haruka さんが書きました:

コード:

  avg_score(a);
  avg_score(b);
これだと、せっかく戻ってきた戻り値を使わずに捨ててしまっています。
これらを直接printfするか、何かの変数に代入してからその値をprintfするかしてください。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: 1次元配列を利用する関数について

#3

投稿記事 by みけCAT » 10年前

  • avg_score関数の戻り値をdouble型にする
  • main関数で、avg_score(a)の戻り値をavgaに代入するようにする
  • main関数で、avg_score(b)の戻り値をavgbに代入するようにする
  • avg_score関数の変数sumおよびavgをdouble型にする
  • 以上の変更を行ったコードを保存し、コンパイルし、そのプログラムを実行する
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

haruka
記事: 2
登録日時: 10年前

Re: 1次元配列を利用する関数について

#4

投稿記事 by haruka » 10年前

できました。
ご親切な返信ありがとうございました。

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: 1次元配列を利用する関数について

#5

投稿記事 by みけCAT » 10年前

きちんと書きなおしてみました。

コード:

<?php
function main()
{
  $a=array(0,2,1,1,4,4,0,2,0,6);
  $b=array(1,3,1,0,6,3,1,2,1,0);

  $avga=avg_score($a);
  $avgb=avg_score($b);
    
  printf("チームaの平均得点は%f\n",$avga);
  printf("チームbの平均得点は%f\n",$avgb);


}

function avg_score($x)
{
  $sum=0;
  for($i=0;$i<10;$i++){
    $sum+=$x[$i];
  }
  $avg=$sum/10;
  return $avg;
}

main();
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: 1次元配列を利用する関数について

#6

投稿記事 by みけCAT » 10年前

haruka さんが書きました:できました。
ご親切な返信ありがとうございました。
解決でしたら、解決チェックをお願いします。
これまでの記事のタイトルの変更は行わず、「送信」ボタンの右の「解決!」にチェックを入れて返信をしてください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

“C言語何でも質問掲示板” へ戻る