C仅打印整数符号

时间:2016-01-19 09:56:44

标签: c printing sign

我想知道是否(以及如何)只能打印数组条目的符号。例如,我有类似

的东西
{1, -1, -1, 1}

我希望输出看起来像

+ - - +

我对C很陌生,我能提出的唯一解决方案是某种if (... < 0)条件,它会产生+-个字符。但这似乎很不方便。

这仅仅意味着我正在使用+1-1绘制大型“模式”。如果有人可以提供帮助,我真的很高兴。

4 个答案:

答案 0 :(得分:4)

您提到的方式对此有效。如果你想通过其他方式做同样的事情,你可以使用三元运算符:

a[i] < 0 ? printf("-"): printf("+");

答案 1 :(得分:1)

你走在正确的轨道上。这是我将使用的方法。虽然按位运算也可行,但可以说是可读性。

#include <stdio.h>

int main(int argc, char **argv)
{
    int numbers[4] = {1, -1, -1, -1};

    for (int i = 0; i < (sizeof(numbers) / sizeof(numbers[0])); i++)
    {
        printf("%s ", (numbers[i] < 0 ? "-" : "+"));
    }

    printf("\n");

    return 0;
}

或者您可以使用sprintf() / snprintf()构建字符串;不确定是否要输出或在其他地方使用它。

答案 2 :(得分:0)

看一看 this

标志+强制输出显示数字的符号

答案 3 :(得分:0)

你可以这样做:

#include <stdio.h>

int main (void) {
    int num [4] = {1, -1, -1, 1);
    int i;
    for (i = 0; i < 4; i ++) {
        if (num [i] < 0) {
            printf ("-");
         }
         else
            printf ("+");
    }
    return 0;
}