这个题非常简单但是非常的坑,有多坑呢?只差一个break,我估计这就是很多人过不了这个题的原因
上代码:

#include <stdio.h>
int main()
{
    int n,i,yu,j;
    scanf("%d", &n);
    for(i=1,j = 1;j<=n;j++)/*j控制循环,i用于计算*/
    {
        i = j;
        if (i % 3 == 0)
        {
            while(i != 0)  /*判断数位是否有5*/
            {
                yu = i % 10;
                i = i /10;
                if(yu == 5)
                {
                    printf("%d\n", j);
                                      /*这里如果没有break,很快能会重复打印出数位有多个5的数字,引起报错*/
                }
            }

        }
    }
    return 0;
}