绑定到另一个打印的变量的打印



我在程序结束时打印了四个变量。

    int n = 0;
    for (n = 0; n < count; n++)
        printf("sorted array:%dn ", array[n]);
        int last = array[0];
        int unique = 1;
        int i;
        for (i = 1; i < n; i++) {
            if (array[i] != last) {
                last = array[i];
                unique++;
            }
        }
        char *start;
        int c;
        int value;
        int step;
        c = 0;
        start = line;
        while (sscanf(start, "%d%n", array + c, &step) == 1) {
            start += step;
            c += 1;
        }
        value = 1;
        int j;
        for (j = 1; j < c; ++j) {
            value += (array[j] - array[j - 1]) ? 1 : 0;
        }
        printf("integers: %d ", count);
    }
    /* Close the file */
    fclose(fp);
    return 0;
}

我可以打印变量unique的正确值的唯一方法是保留printf("sorted array:%dn", array[n]);.但是,我使用该printf语句仅用于测试目的,不希望在程序执行时打印该语句。

如果我删除for(n = 0; n < count; n++)printf("sorted array:%dn", array[n]);unique的值始终是不正确的。

我以前从未见过这样的事情。关于为什么一个变量的printf似乎绑定到另一个变量的任何建议?

如果你保持你的for循环,那么在它结束时,我们有n = count.如果将其删除,则n = 0 .然后,这会更改您的第二个for循环,因为i不采用相同的值。

最新更新