2011-10-30 12 views
2

私はこのコードで繰り返しを削除する:Cでペアのリストを作成する方法は?

printf("%.2f: %s\n", 440.00f, "A4"); 
printf("%.2f: %s\n", 523.25f, "C5"); 
printf("%.2f: %s\n", 880.00f, "A5"); 
printf("%.2f: %s\n", 1046.50f, "C6"); 

私の計画は、その上にペアとループのリストを作ることです。それは可能なのか、良い解決策ですか、それとも2つの配列を作るべきですか?

+0

あなたはまた、ペアの1つの配列を作ることができます。データの入手方法によって異なります。 – Mat

+0

@Mat:私の質問は、ペアの配列を作る_how_です:) – Andreas

答えて

7

ただ、構造体の配列を作る:

struct pair { 
    double num; 
    char str[32]; 
}; 

struct pair pairs[10] = { 
    {440.00f, "A4"}, 
    {523.25f, "C5"}, 
    /* ... */ 
}; 

/* C99. */ 
pairs[2] = (struct pair){880.00f, "A5"}; 
pairs[3] = (struct pair){ 
    .str = "C6", 
    .num = 1046.50f 
}; 

for (i = 0; i < sizeof(pairs)/sizeof(pairs[0]); i++) 
    printf("%.2f: %s\n", pairs[i].num, pairs[i].str); 
+1

また、 'num nums [COUNT] = {...}; char strs [COUNT] [32] = {...}; for(i = 0; i

+0

ありがとう!コード内のリストを初期化する最もきれいな方法は何ですか? – Andreas

+0

@アンドレアス私は私の答えを編集しました。 – cnicutar

関連する問題