大娃娃的云 2017-11-04 15:16 采纳率: 100%
浏览 986
已采纳

如何在无符合条件的值可输出时,输出-1。

输入一个整数T,表示接下来输入T组数据。输入M、N,在下一行输出【M,N】内所有的水仙花数,结束后换行。如果没有则输出-1。

 #include <stdio.h> 

int main(void)
{
    int a, b, c, i;
    int T,m,n;
    scanf_s("%d",&T);
    while(T--)
    {
    scanf_s("%d%d",&m,&n);
    printf("-1\r");
    for (i = m; i<=n; i++)
      {
        a = i / 100;
        b = i / 10 % 10;
        c = i % 10;
        if (i == a*a*a + b*b*b + c*c*c)
          {
            printf("%-5d", i);
          }

       }
    printf("\n");
    }
    getchar();
    getchar();
    return 0;
}

以上是我的代码,-1的输出有些投机取巧。有大佬指点一下更符合逻辑的写法。

  • 写回答

1条回答 默认 最新

  • 十木禾 2017-11-04 15:18
    关注
     #include <stdio.h> 
    
    int main(void)
    {
        int a, b, c, i;
        int T,m,n;
        scanf_s("%d",&T);
        while(T--)
        {
            int flag=0;
        scanf_s("%d%d",&m,&n);
        printf("-1\r");
        for (i = m; i<=n; i++)
          {
            a = i / 100;
            b = i / 10 % 10;
            c = i % 10;
            if (i == a*a*a + b*b*b + c*c*c)
              {//找到
                        flag=1;
                printf("%-5d", i);
              }
    
           }
                if(flag==0) printf("%-5d",-1);
        printf("\n");
        }
        getchar();
        getchar();
        return 0;
    }
    

    //代码随手打的,应该是这个思路吧……

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM