最后的空间,我打印出来的阵列中的每个元素通过间隙如何从printf的输出
// n - array length
for(x=0; x<n; x++){
printf("%d ", a[x]);
}
它返回我:
1 2 3 4 5 [space here]
如何删除最新空间(人物)?
最后的空间,我打印出来的阵列中的每个元素通过间隙如何从printf的输出
// n - array length
for(x=0; x<n; x++){
printf("%d ", a[x]);
}
它返回我:
1 2 3 4 5 [space here]
如何删除最新空间(人物)?
for(x=0; x<n; x++){
if(x == n-1)
printf("%d", a[x]); /* Print without space when printing last element */
else
printf("%d ", a[x]);
}
的方法很简单:
for(x=0; x<n; x++){
printf("%d", a[x]);
if(x<(n-1)){
printf(" ");
}
}
for(x=0; x<n-1; x++){
printf("%d ", a[x]);
}
if(n > 0)
printf("%d", a[x]);
一种替代,IMHO更易读的方法:
for (x = 0; x < n; x++)
{
if (x > 0)
putchar(' ');
printf("%d", a[x]);
}
这仍然打印尾部空间 – user3629249 2015-01-26 19:27:45
@ user3629249(a)否:https://ideone.com/D0x9F5(b)它怎么可能?它不会在任何数字之后打印任何*,只有*在*之前*某些数字; – 2015-01-26 19:32:41
A “分支少” 的保罗Roub的溶液变体。它要求保持n > 0
(即,因此在a
阵列中存在至少一个元素)。
#include <stdio.h>
int main(void)
{
int x, n, a[] = {1, 2, 3, 4, 5};
n = 5;
printf("%d", a[0]);
for (x = 1; x < n; x++)
printf(" %d", a[x]);
putchar('\n');
return 0;
}
每个人都发布自己的答案,所以这是我自己的答案。
int n, i;
for (i = 1, n = 5; i <= n; i++)
printf("%d%s", i, i < n ? " " : "");
不知道我会建议使用这种方法,但这样的事情也可以工作:
for (x = 0; x < n; x++)
{
printf("%c%d", " "[!x], a[x]);
}
这是一个有点cheaty,但在我看来整齐。
(不要添加空格开头。) – user2864740 2015-01-26 18:04:09
“删除”已打印的字符通常是不可能的 - 您可以尝试用退格键覆盖它,但依赖于您的控制台设置。合乎逻辑的事情就是不要打印它。 – usr2564301 2015-01-26 18:41:28