大娃娃的云 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 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了