for (i = 1; i < 100; ++i) { if ((vt[i] <= (mid - 65)) || (vt[i] >= (mid + 65))) { printf("%d, ", i); n = 1; } } if (n == 0) { printf("n/a"); }
我希望输出是7,8,9,10而不是7,8,9,10,
jexiocij1#
我可能会这样做:
const char* fmt = "%d"; /* first item solo */ for (i = 1; i < 100; ++i) { if ((vt[i] <= (mid - 65)) || (vt[i] >= (mid + 65))) { printf(fmt, i); fmt = ", %d"; /* subsequent items comma separated */ n = 1; } } if (n == 0) { printf("n/a"); }
uttx8gqw2#
您可以使用变量n作为标志。举个例子
n
for (i = 1; i < 100; ++i) { if ((vt[i] <= (mid - 65)) || (vt[i] >= (mid + 65))) { if ( n ) printf( ", " ); printf( "%d", i); n = 1; } } if (n == 0) { printf("n/a"); }
P.S.检查循环的索引是否应该从0或1开始。
krcsximq3#
只要用简单的方法做就行了,用退格键转义序列i。e.\B
if (i == 100) { // Just a logic, that doesn't matter printf("\b\b "); }
回答你的逻辑:第一个\B,移动光标96,_第二个\b,将光标移动到96后面的逗号下,即96,printf()中给出的第三个(““)空格将用空格替换/删除逗号(,)。
3条答案
按热度按时间jexiocij1#
我可能会这样做:
uttx8gqw2#
您可以使用变量
n
作为标志。举个例子P.S.检查循环的索引是否应该从0或1开始。
krcsximq3#
只要用简单的方法做就行了,用退格键转义序列i。e.\B
回答你的逻辑:第一个\B,移动光标96,_第二个\b,将光标移动到96后面的逗号下,即96,printf()中给出的第三个(““)空格将用空格替换/删除逗号(,)。