我想删除此代码中的重复:
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" );
我的计划是列出一对并循环它。是否有可能和一个好的解决方案,或者我应该制作两个数组?
答案 0 :(得分: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);