打印列表时省略最后一个逗号

我想显示两个数字之间的质数,例如2,5,7,11 但它显示像这样的2,11,其中有一个额外的“,”。

#include <stdio.h>
int main()
{
   int n1,n2,f,i,j;

   scanf("%d %d",&n1,&n2);

   for(i=n1; i<n2; ++i)
   {
      f=0;
      for(j=2; j<=i/2; ++j)
      {
         if(i%j==0)
         {
            f=1;
            break;
         }
      }
      if(f==0)
        if(i!=1)
         printf("%d,",i);
   }
   return 0;
}
QQW1236 回答:打印列表时省略最后一个逗号

回答问题,但不能解释@Bathsheeba提出的观点:

#include <stdio.h>

int main()
{
   int n1,n2,f,i,j;

   scanf("%d %d",&n1,&n2);

   int itemCount = 0;  // NEW

   for(i=n1; i<n2; ++i)
   {
      f=0;
      for(j=2; j<=i/2; ++j)
      {
         if(i%j==0)
         {
            f=1;
            break;
         }
      }

      if (f == 0  &&  i != 1)  // TESTS COMBINED
      {
        if (itemCount++ > 0) putchar(',');  // HERE
        printf("%d",i);                     // COMMA REMOVED
      }
   }
   printf("\n"); // newline at the end
   return 0;
}

添加逗号后真正删除逗号的唯一方法是在运行时构建缓冲区-这是一种合理的方法-因此在这里,我们只需要在需要时才生成逗号但是第一项。

本文链接:https://www.f2er.com/3100677.html

大家都在问