【问题标题】:How to make a list of pairs in C?如何在C中制作对的列表?
【发布时间】:2011-10-30 09:33:55
【问题描述】:

我想删除这段代码中的重复:

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

我的计划是制作一个配对列表并循环遍历它。是否有可能并且是一个好的解决方案,还是我应该只制作两个数组?

【问题讨论】:

  • 你也可以制作一对数组。取决于您如何获取数据。
  • @Mat:我的问题是 如何 制作成对数组 :)

标签: c list


【解决方案1】:

只需创建一个结构数组:

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

【讨论】:

  • 或者,double nums[COUNT] = { ... }; char strs[COUNT][32] = { ... }; for(i = 0; i &lt; COUNT; i++) printf("%.2f: %s\n", nums[i], strs[i]);
  • 谢谢!在代码中初始化列表的最简洁方法是什么?
猜你喜欢
  • 2021-01-09
  • 1970-01-01
  • 1970-01-01
  • 2017-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-26
相关资源
最近更新 更多