
はじめてのC言語| 第10回
はじめに|レシピを、何度も書き直さないために
カフェが少し落ち着いてきました。
ミナちゃんは、ミキサーの前でメモを見ています。
「2人前のレシピは書けたけど、
3人前にしたいとき、また全部書き直すのかな……?」
そんなときに役立つのが、
人数で材料を計算するレシピです。
今回は、
ミックスジュースのレシピを例にして、
C言語で“人数対応レシピカード”を書く方法を見ていきます。
今日のメニューは、ミックスジュース
使う材料は、シンプルです。
- バナナ
- みかんの缶詰
- 桃の缶詰
- ミルク
- 氷
この材料を、
配列を使ってまとめて管理します。
考え方|材料を「並べて」持つ
このレシピでは、材料ごとに
- 材料の名前
- 基本の量
- 単位
を、それぞれ配列にして並べます。
「同じ仲間のものを、同じ順番で並べる」
これが、配列の基本的な使い方です。
レシピカード|配列で書くC言語コード
このコードが、カフェで共有する、ミックスジュースのレシピカードです。
基本は2人前、そこから人数に応じて材料を計算することができます。
#include <stdio.h>
int main(void) {
// 基本人数と作りたい人数
int base_people = 2;
int target_people = 3;
// 材料の名前
const char *names[] = {
"バナナ",
"みかんの缶詰",
"桃の缶詰",
"ミルク",
"氷"
};
// 単位
const char *units[] = {
"本",
"g",
"g",
"ml",
"g"
};
// 基本2人前の材料量
double base_amounts[] = {
1.0, // バナナ
150.0, // みかんの缶詰
120.0, // 桃の缶詰
300.0, // ミルク
100.0 // 氷
};
int item_count = 5;
// 倍率を計算
double factor = (double)target_people / base_people;
// 表示
printf("=== ミックスジュース レシピカード ===\n");
printf("%d人前の材料\n", target_people);
printf("----------------------------------\n");
for (int i = 0; i < item_count; i++) {
double amount = base_amounts[i] * factor;
printf("%s:%.1f %s\n", names[i], amount, units[i]);
}
printf("----------------------------------\n");
printf("1) すべての材料をミキサーに入れる\n");
printf("2) なめらかになるまで回す\n");
printf("3) グラスに注いで完成\n");
return 0;
}
人数が変わっても、
同じ計算を、同じ形で使えるようになります。
毎回ちがう式を書く必要はありません。
人数を入れ替えるだけで、レシピはそのまま使えます。
コードをやさしく読み解く
材料は、同じ番号どうしがセット
たとえば、
names[0]→ バナナbase_amounts[0]→ バナナの量units[0]→ バナナの単位
このように、
同じ番号が、同じ材料を表しています。
for文で、材料を順番に処理する
for (int i = 0; i < item_count; i++) {
...
}この1つのループで、
- 材料名を取り出し
- 人数分に計算し
- 画面に表示する
という流れを、まとめて行っています。
材料が増えても、
配列に1行追加するだけで対応できます。
なぜ、配列レシピが便利なのか
配列を使うと、
- 材料が増えても、コードが増えにくい
- 同じ処理を、何度も書かなくていい
- コード全体の見通しがよくなる
という良さがあります。
これは料理でいうと、
きれいに整理されたレシピ帳を作った感覚です。
今回のまとめ
- 人数で変わるレシピは、計算に向いている
- 配列を使うと、材料をまとめて扱える
- C言語でも、レシピカードのように書ける
関数や配列は、
難しい道具ではありません。
いつもの手順を、整えて並べるための箱です。
次の回では、
このレシピカードを
関数として呼び出す形に整理してみましょう。
レシピが増えても、
迷わないカフェになっていきます。
さらに学びたいあなたへ
📘 用途ごとに選ぶ Linux のおすすめ本

