一只学C的萌新 发表于 2021-10-2 12:33:11

救救孩子,折腾一上午了(水仙花)

题目:水仙花


         Input:输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999),输入为0 0时表示输入数据结束(不需要输出)。

         Output:对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;
如果给定的范围内不存在水仙花数,则输出no;
每个测试实例的输出完毕后换行。

      sample input
      100 120
      300 380
      0 0


      sample output
      no
      370 371

      我的代码是
#include <stdio.h>
#include <math.h>

int main()
{
    int min,max,sum=0,y1,y2,y3,a,b,c=0;
    printf("请输入分别水仙花数下限和上限:");
    scanf("%d%d",&min,&max);
    a=min+1;

    if(max==0,min==0)
    {
      return 0;
    }
else
{
   while(a<max)
{
    b=a;

    y1=b%10;
    b=b/10;
    y2=b%10;
    y3=b/10;

    if(a==pow(y1,3)+pow(y2,3)+pow(y3,3))
    {
      printf("%d",a);
      c++;
    }

    a++;

}
}
if(c==0)
    {
      printf("no");

    }
return 0;
}

真的不知道哪里错了,带作业提示就是Wrong Answer on test 1

大马强 发表于 2021-10-2 13:23:34

你运行不了吗?
我这没啥问题{:10_245:}

一只学C的萌新 发表于 2021-10-2 13:49:32

大马强 发表于 2021-10-2 13:23
你运行不了吗?
我这没啥问题

不是运行不了,是不满足题目要求,提交作业显示错误

jhq999 发表于 2021-10-2 20:05:38

本帖最后由 jhq999 于 2021-10-2 20:10 编辑

if(max==0,min==0)应该是if((min<100)||(max<min)||(max>999))
页: [1]
查看完整版本: 救救孩子,折腾一上午了(水仙花)