c - 如何在 C 中制作成对列表?

标签 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 {
    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);

关于c - 如何在 C 中制作成对列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7944168/

相关文章:

python - ast.literal_eval - 遍历列表中的字符串元素

c# - 根据条件从列表中取出 N 项

不能 dup2 将管道的末端写入标准输出

c - 如何在C中使用指针反转字符串

c++ - 如何获取原始命令行参数

Python:插入列表比 O(N) 更快?

c - 是否可以在一个 getche() 函数中收集多个输入?

c - SSE操作可在2D数组上实现循环,其中每个输出取决于包含该数组的3x3正方形(生命游戏)

python - 如何让 Python 同时对列表中的所有项目进行循环?

c# - 根据字数过滤字符串