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颜色)。