次の仕様で比較します。
仕様 | 実行例 |
---|---|
1、2、3 の商品番号がつけられる商品がある。 |
2 3 1 2 3 2 2 1 3 1 1 1 3 2 1 3 END 商品1販売個数 :6 商品2販売個数 :4 商品3販売個数 :5 |
以下で、単純な変数を使った場合と、配列を使った場合のプログラムの違いを示します。
単純な変数を使ったプログラム | 配列を使ったプログラム |
---|---|
#include <stdio.h> main() { int goods1 = 0;/* 商品1の販売個数 */ int goods2 = 0;/* 商品2の販売個数 */ int goods3 = 0;/* 商品3の販売個数 */ int id, suu;/* 商品番号と販売個数 入力用 */ /* 入力の繰り返し */ while(fscanf(stdin, "%d %d", &id, &suu) == 2){ if(id == 1){ goods1 += suu; } else if(id == 2){ goods2 += suu; } else if(id == 3){ goods3 += suu; } } /* 各商品の販売個数合計を表示 */ fprintf(stdout, "商品1販売個数 :%d\n", goods1); fprintf(stdout, "商品2販売個数 :%d\n", goods2); fprintf(stdout, "商品3販売個数 :%d\n", goods3); } |
#include <stdio.h> main() { int goods[4] = {0,0,0,0};/* 商品販売個数 */ int id, suu;/* 商品番号と販売個数 入力用 */ /* 入力の繰り返し */ while(fscanf(stdin, "%d %d", &id, &suu) == 2){ goods[id] += suu; } /* 各商品の販売個数合計を表示 */ for(id = 1; id < 4; id++){ fprintf(stdout, "商品%d販売個数 :%d\n", id, goods[id]); } } |
商品番号によって加算対象の変数を、ifで場合分けしています。 |
商品番号を添え字に使って、その要素に加算してます。 |
右の配列を使う方法では、『商品番号を配列の添え字にして使うと決めて』、その番号でアクセスしています。