如何在C语言中列出对?

如何在C语言中列出对?,c,list,C,List,我想删除此代码中的重复: 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" ); 我的计划是列一张双人单子,然后在上面循环。这可能是一个好的解决方案,还是我应该只制作两个数组?只需制作一个结构数组: struct pair {

我想删除此代码中的重复:

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" );

我的计划是列一张双人单子,然后在上面循环。这可能是一个好的解决方案,还是我应该只制作两个数组?

只需制作一个结构数组:

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);
结构对{
双数;
char-str[32];
};
结构对[10]={
{440.00f,“A4”},
{523.25f,“C5”},
/* ... */
};
/*C99*/
对[2]=(结构对){880.00f,“A5”};
对[3]=(结构对){
.str=“C6”,
.num=1046.50f
};
对于(i=0;i
您还可以创建一个成对数组。取决于您如何获取数据。@Mat:我的问题是如何生成成对数组:)或者,执行
double nums[COUNT]={…};字符strs[COUNT][32]={…};对于(i=0;i谢谢!在代码中初始化列表最简单的方法是什么?