如何摆脱我的C代码中的最后一个逗号?

时间:2017-03-27 21:13:28

标签: c

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,

2 个答案:

答案 0 :(得分:0)

我可能会这样做:

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

答案 1 :(得分:0)

您可以使用变量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开始。