我正在进行一项任务,我做了一个功能来获得功率设置并且它工作但是如果这样的设置:
{1,2,3}
打印出来:
{{},{1,},{2,},{1,2,},{3},{1,3},{2,3},{1,2,3}}
我无法删除这些逗号:
{{},{1},{2},{1,2},{3},{1,3},{2,3},{1,2,3}}
此功能的源代码:
__init__
答案 0 :(得分:0)
解决此问题的一种方法是跟踪您是否打印了一组中的第一个数字。而不是:
for (int j = 0; j < set1_length; j++ ) {
if(i & (1<<j)) {
cout << set1[j];
if (j < set1_length - 1) cout << ",";
}
}
您可以使用标记仅从集合中的第二个数字开始打印逗号:
bool first = true;
for (int j = 0; j < set1_length; j++ ) {
if(i & (1<<j)) {
if (first) {first = false;}
else {cout << ",";}
cout << set1[j];
}
}
答案 1 :(得分:-1)
检查你的if语句:
if (j < set1_length && (i & (1 << (j+1)))) cout << ",";