注册 登录
编程论坛 C++教室

这个程序哪错了

sz194391 发布于 2013-04-07 22:49, 415 次点击
#include<stdio.h>
int main()
{
    int m,n,count,a,b,c,i;
    scanf("%d %d",&m,&n);
    count=1;
    i=m;
    for(i=m;i<=n;i++)
    {
        a=i%10;
        b=(i/10)%10;
        c=i/100;
        if(i==a*a*a+b*b*b+c*c*c)
            printf("i ");
        else
            count=0;
    }
    if(count=0)
        printf("No\n");
    return 0;
}
4 回复
#2
apull2013-04-08 01:08
输出
printf("%d ",i);

比较用==号
if(count==0)
#3
久久钗2013-04-10 17:56
#include<stdio.h>
int main()
{
    int m,n,count,a,b,c,i;
    scanf("%d %d",&m,&n);
    count=1;
    for(i=m;i<=n;i++)
    {
        a=i%10;
        b=(i/10)%10;
        c=i/100;
        
        if(i==a*a*a+b*b*b+c*c*c)
            printf("%d\n",i);
        else
            count=0;
    }
    if(count=0)
        printf("No\n");
    return 0;
} 应该是这样的吧,你想求的是水仙花数是吗那个count=0是正确的不用==
#4
邓士林2013-04-10 19:01
1、 printf("i ");这个输出格式不对,正确为: printf("%d",i);
2、if(count=0)这个表达也不符合题意,你的意思是想count等于0,但是你这样表达就是赋值0了,这样就成了恒成立了。改成 if(count==0)
代码修改如下:
#include<stdio.h>
 int main()
 {
     int m,n,count,a,b,c,i;
     printf("请输入m--n的范围");
     scanf("%d %d",&m,&n);
     if(m>n)printf("输入范围有误,请重新输入:");
     count=1;
     i=m;
     for(i=m;i<=n;i++)
     {
         a=i%10;
         b=(i/10)%10;
         c=i/100;
         if(i==a*a*a+b*b*b+c*c*c)
             printf("%d",i);
         else
             count=0;
     }
     if(count==0)
         printf("No\n");
     return 0;
 }
#5
久久钗2013-04-11 20:43
恩,大意了,的确是那个是要==
1