Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C只打印整数的符号_C_Printing_Sign - Fatal编程技术网

C只打印整数的符号

C只打印整数的符号,c,printing,sign,C,Printing,Sign,我想知道是否(以及如何)只能打印数组项的符号。例如,我会有类似于 {1, -1, -1, 1} + - - + 我希望输出看起来像 {1, -1, -1, 1} + - - + 我对C非常陌生,我能想到的唯一解决方案是某种if(…

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

{1, -1, -1, 1}
+ - - +
我希望输出看起来像

{1, -1, -1, 1}
+ - - +
我对C非常陌生,我能想到的唯一解决方案是某种
if(…<0)
条件,它会导致
+
-
字符。但这似乎很不愉快

这仅仅意味着我正在用
+1
-1
绘制相当大的“模式”。如果有人能帮忙,我真的很高兴。

看看


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

您在正确的轨道上。这是我将使用的方法。虽然按位操作也会起作用,但要说可读性

#包括
int main(int argc,字符**argv)
{
整数[4]={1,-1,-1};
对于(int i=0;i<(sizeof(数字)/sizeof(数字[0]);i++)
{
printf(“%s”)(数字[i]<0?”-“:”+”);
}
printf(“\n”);
返回0;
}

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

您所提到的方法在这方面是有效的。如果您想通过其他方式执行相同的操作,可以使用三元运算符:

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

您可以这样做:

#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;
}
#包括
内部主(空){
int num[4]={1,-1,-1,1);
int i;
对于(i=0;i<4;i++){
if(num[i]<0){
printf(“-”);
}
其他的
printf(“+”);
}
返回0;
}

但是如果不打印号码,您就不能使用它。出于好奇,是否可以强制符号,然后“剪切”打印字符串的长度,以便只打印符号?谢谢,我已经忘记了这个操作符。我很高兴。别忘了批准已接受的答案。:)谢谢,经过一些调整,这是e这正是我想要的!棒极了,没问题,很高兴我能帮上忙!:)在1k x 1k数组中,如果没有“1”,它确实看起来好多了。如果符合您的输出格式,您甚至可以将
-
涂成红色,将
+
涂成绿色(例如,外壳上的ANSI颜色,或web上的HTML颜色)。