我想知道是否(以及如何)只能打印数组条目的符号。例如,我有类似
的东西{1, -1, -1, 1}
我希望输出看起来像
+ - - +
我对C很陌生,我能提出的唯一解决方案是某种if (... < 0)
条件,它会产生+
或-
个字符。但这似乎很不方便。
这仅仅意味着我正在使用+1
和-1
绘制大型“模式”。如果有人可以提供帮助,我真的很高兴。
答案 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;
}