我通过间隙
打印出数组的每个元素// n - array length
for(x=0; x<n; x++){
printf("%d ", a[x]);
}
它让我回复:
1 2 3 4 5 [space here]
如何删除最新的空格(字符)?
答案 0 :(得分:3)
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]);
}
答案 1 :(得分:3)
另一种恕我直言,更具可读性的方法:
for ( x = 0; x < n; x++ )
{
if (x > 0)
putchar(' ');
printf("%d", a[x]);
}
答案 2 :(得分:2)
道路很简单:
for(x=0; x<n; x++){
printf("%d", a[x]);
if(x<(n-1)){
printf(" ");
}
}
答案 3 :(得分:1)
for(x=0; x<n-1; x++){
printf("%d ", a[x]);
}
if(n > 0)
printf("%d", a[x]);
答案 4 :(得分:0)
A&#34;无分支&#34; Paul 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;
}
答案 5 :(得分:0)
每个人都在发布自己的答案,所以这是我自己的答案。
int n, i;
for (i = 1, n = 5; i <= n; i++)
printf("%d%s", i, i < n ? " " : "");
答案 6 :(得分:0)
不确定我会推荐这种方法,但是这样的方法也会起作用:
for ( x = 0; x < n; x++ )
{
printf("%c%d", " "[!x], a[x]);
}
有点讨厌,但在我看来很整洁。