C 如何在for循环的最后一个循环中防止打印空间

C 如何在for循环的最后一个循环中防止打印空间,c,C,给你们一个简单的问题: 我编写了这个循环,它打印数组的一些值。 我希望每个值之间都有空格,但我不希望在代码打印的最后一个值之后有空格 你知道我该怎么做而不让事情复杂化吗 for (i_talltrees=1; i_talltrees<=numtrees; i_talltrees++) { pre=i_talltrees-1; post=i_talltrees+1; if (talltrees[pre]<talltrees[i_talltrees]&&a

给你们一个简单的问题:

我编写了这个循环,它打印数组的一些值。 我希望每个值之间都有空格,但我不希望在代码打印的最后一个值之后有空格

你知道我该怎么做而不让事情复杂化吗

for (i_talltrees=1; i_talltrees<=numtrees; i_talltrees++) {
    pre=i_talltrees-1;
    post=i_talltrees+1;
    if (talltrees[pre]<talltrees[i_talltrees]&&talltrees[i_talltrees]>talltrees[post]) {
        printf("%d ", talltrees[i_talltrees]);
    }

    }
对于(i_-talltrees=1;i_-talltrees请尝试以下操作:

 int flag = 0; 
 if (talltrees[pre]<talltrees[i_talltrees]&&talltrees[i_talltrees]>talltrees[post]) 
 {   
    if(flag)
    { 
        printf(" ");
        flag = 0;
    }
    printf("%d", talltrees[i_talltrees]); 
    flag = 1; 
 } 
int标志=0;
if(塔尔特里斯[前]塔尔特里斯[后])
{   
国际单项体育联合会(旗)
{ 
printf(“”);
flag=0;
}
printf(“%d”,talltrees[i_talltrees]);
flag=1;
} 

这应防止前导空格或尾随空格:

int have_printed = 0;

for (i_talltrees=1; i_talltrees<=numtrees; i_talltrees++) {
    pre=i_talltrees-1;
    post=i_talltrees+1;
    if (talltrees[pre]<talltrees[i_talltrees]&&talltrees[i_talltrees]>talltrees[post]) {
        if (have_printed) {
            printf(" ");
        }
        else {
            have_printed = 1; 
        }
        printf("%d", talltrees[i_talltrees]);
    }
}
int已打印=0;
对于(i_talltrees=1;i_talltrees更改格式

const char *format = "%d";
for (i_talltrees=1; i_talltrees<=numtrees; i_talltrees++) {
  pre=i_talltrees-1;
  post=i_talltrees+1;
  if (talltrees[pre]<talltrees[i_talltrees]&&talltrees[i_talltrees]>talltrees[post]) {
    printf(format, talltrees[i_talltrees]);
    format = " %d";   // next, if any, begin with a space.
  }
}
const char*format=“%d”;

对于(i_talltrees=1;i_talltrees在?中显示另一个if语句,作为旁白,您确定这是正确的吗?
i_talltrees如果在开始时没有额外空间的问题,请将
%d“
更改为
%d”
@EdS。否。
i_talltrees
变量的起始值是1,而不是0。(假设数组中有足够的元素,这样就可以了。)我认为问题的一部分是,它可能会也可能不会以任何给定的
I_-talltrees
值打印。像你这样一个简单的
if
如果
numtrees
的值输入了
if
,效果会很好,但如果它没有输入,则无法解决问题。@Macattack;请参阅
循环中的条件:
I-talltrEES问题不在于它是否会进入,即越界,问题在于它是否会通过以下条件:
talltrees[pre]talltrees[post]
。如果
[numtrees-1]
成功,将追加一个
,但如果
[numtrees]
失败,则会有一个尾随空格。@Macattack-Huh…?什么?a
是什么“
将被追加”不同于“将有一个尾随空格”?您感到困惑…@H2CO3可能不清楚,困惑,否。只有当条件通过时,代码才会打印。同意吗?如果最后一个值在
talltrees[numtrees]
处未通过条件,则将出现
”“
打印后没有数字。有什么不清楚的吗?