关于求韩信点兵数问题

img

对这个题目提交时结果完全错误
不清楚是题目审题问题还是有特殊情况未考虑
#include<stdio.h>

int main()
{
int i,m,n,count=0;
scanf("%d %d",&m,&n);
for(i=m; i<=n&&i>=m; i++)
{
if(i%3==2&&i%5==3&&i%7==4)
{
printf("%d ",i);
count++;
}
}
if(count!=0)
{
printf("\n");
printf("total=%d",count);
}
return 0;
}
在编译器试例子也是正确的

img

printf("%d ",i);会让行末有空格,所以错误
这么改试试:

if(i%3==2&&i%5==3&&i%7==4)
{
      if(count == 0)
          printf("%d",i);
      else
          printf(" %d",i);
      count++;
}

未清楚题目要求行首行末不为0;
要实现要求不清楚循环打印什么时候结束时
要最后一次打印不加空格
则思路可以为在第一次打印不加空格,之后打印在打印数前加空格