« パソコン甲子園プログラミング部門 | トップページ | X60のパームレスト »

2007/09/25

10点問題:出口調査

あるデパートで買い物金額の出口調査を行いました。買い物金額のデータを入力とし、1人あたりの平均買い物金額を計算し、出力して終了するプログラムを作成してください。調査人数は、10000人以下とし、全員の買い物金額の合計は10億円を超えないものとします。

という問題です。一番簡単だったので、早速作ってみることにしました。

#include <stdio.h>
#include <math.h>

int main(void)
{
  int    i;
  int    money;
  int    people;
  int    average;
  double sum = 0;
  
clear:printf("何人の調査をしますか?:");
  scanf("%d", &people);

  if(people>0 && people<pow(10,4)) {
    for(i=1 ; i<=people ; i++) {
      printf("%d人目の買い物金額:", i);
      scanf("%d", &money);
      sum += money;
      if(sum >= pow(10, 9)) {
      printf("ERROR!!\n");
        goto clear;
      } 
    }
    average = sum/people;
    printf("結果は%d円です。\n", (int)average);
  } else {
    printf("ERROR!!\n");
    goto clear;
  }
    
  return 0;
}


基本的には平均値を求めるプログラムですが、例外処理をいれてあるので少し複雑になっています。私はこの処理にgoto文を使ってしまいましたが、どうでしょうか?goto文は多用するべきではないですが、今回は処理がスッキリするのでよかったかなと思います。

Link : goto文について from Wikipedia (これを根拠にいいわけ)

|

« パソコン甲子園プログラミング部門 | トップページ | X60のパームレスト »

C」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/222903/16567836

この記事へのトラックバック一覧です: 10点問題:出口調査:

« パソコン甲子園プログラミング部門 | トップページ | X60のパームレスト »