船に12人の乗客がいるとします。それぞれが異なっています。 これらの12人の乗客がのカテゴリに分類されます。制限された文字列で自動的に配列要素を埋め込む
クラス:これらの各カテゴリは、2つの異なるオプションを持つことができ
- クラス
- 年齢
- 性別
「第1」または「第2」のいずれかである
年齢は「大人」または「子供」のいずれかである
性別が「男性」または「女性」
が、私は「旅客」と呼ばれるタイプの構造体の新しいデータ型を作成することを決めたのいずれかです。下のコードで見るように、クラス、年齢、性別の3つのメンバーがあります。
次に、この新しく作成されたデータ型(Passenger)の変数(allPassengers)を作成します。
しかし、乗客に関する情報の12種類の組み合わせすべてで、「allPassengers」と呼ばれるタイプのPassengerの配列を記入するにはどうすればよいですか?
など。
#include <stdio.h> #include <string.h>
typedef struct {
char class[7];
char age[6];
char gender[7];
}
Passenger;
/* This is where all the information about passengers will be stored, global variable,
there are 9 combinations of passengers (allocated array elements for the variable), last one is reserved for the null character \0 */
Passenger allPassengers[10];
int main() {
// First combination
strcpy(allPassengers[0].class, "first");
strcpy(allPassengers[0].age, "adult");
strcpy(allPassengers[0].gender, "male");
// Second combination
strcpy(allPassengers[1].class, "second");
strcpy(allPassengers[1].age, "adult");
strcpy(allPassengers[1].gender, "male");
// Third combination
strcpy(allPassengers[2].class, "first");
strcpy(allPassengers[2].age, "child");
strcpy(allPassengers[2].gender, "male");
// ... etc
return 0;
}
Here's同じコード(フレンドリーコピー&ペースト):私は手動で最初の3つの組み合わせを作成しました。
数字だけの配列(forループ)を記入するのは簡単だったでしょう。しかし、最初の2つのallPassengers[0]
と、allPassengers[1]
など、必要な情報を記入する方法はわかりません。私は複雑な "if文"をループの内部に書くと思います。以前の全会員のクラスを確認してください。 2つ以上の一致がある場合、クラス "second"を割り当てます。
またはスイッチケースではありません。より強固な組み合わせを記入しなければならない場合はどうすればいいですか?
変数には制限付きの文字列しか使用できません。例えばクラスは "first"か "second"のどちらかを取ることができますか?
手がかりはありますか?
'pow(2,3)<12'です。 – EOF
アイテムごとに2つのオプションに制限されている場合は、[ブール型](http://stackoverflow.com/questions/1921539/using-boolean-values-in-c)または0-1ベースのシステムでは、ロジックがはるかに容易になります。 IE '(isFirstClass {0,1}、isAdult {0,1}、isMale {0,1})'または任意の組み合わせである。 –