莯&芜 2022-01-15 00:12 采纳率: 87%
浏览 34
已结题

一个刷题系统显示部分正确,请修正🙏

img


#include<stdio.h>
int main()
{
int i,m,n,flag=0;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++)
{
if(i%3==0&&(i%10==5||i/10==5||i/100==5||i/1000==5))
{
if(flag==0)
printf("%d",i);

if(flag==1)
printf(" %d",i);
 flag=1;
}
}
 if(flag==0)
printf("No exist");
return 0;

}

  • 写回答

2条回答 默认 最新

  • _GX_ 2022-01-15 06:56
    关注
    #include <stdio.h>
    
    int has_five(int x)
    {
        while (x)
        {
            if (x % 10 == 5)
                return 1;
            x /= 10;
        }
        return 0;
    }
    
    int main()
    {
        int m, n;
        scanf("%d%d", &m, &n);
        int found = 0;
        for (int i = m; i <= n; i++)
        {
            if (i % 3 == 0 && has_five(i))
            {
                if (found)
                    printf(" ");
                printf("%d", i);
                found = 1;
            }
        }
        if (!found)
            printf("No exist");
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月23日
  • 已采纳回答 1月15日
  • 创建了问题 1月15日