2 misskally misskally 于 2015.05.29 19:55 提问

请问这段水仙花数程序有什么问题

#include
void main()
{
int a, b, d,e=0;
for (a = 1;;a++)
{
do
{
b = a % 10;
d = a / 10;
e = e + b*b*b;
a = d;
} while (d != 0);
if (a==e)
printf(" %d\n",e);
}
}
大神求解答
诊断程序在VS2013中没有警告或错误,但是执行时弹出框只是光标在闪烁,没有其他任何数字或字母
请问这段程序有什么问题

10个回答

youliah
youliah   2015.05.29 20:06

do..while里面有问题啊。e得到的不是三个位数的立方。

misskally
misskally 非常感谢
大约 3 年之前 回复
misskally
misskally 麻烦能说详细点吗
大约 3 年之前 回复
u012216727
u012216727   Ds   Rxr 2015.05.29 20:07

a=100后d=100/10=0的,所以下一次又从do{}开始运行了,第二次你的a=0;而d=0/10=0;所以就会永远执行do{}while()循环了。

如果回答对你有帮助,请采纳

misskally
misskally 将while(d=0)改为while(d!=0)就能跳出循环了,但是改后还是不行
大约 3 年之前 回复
giantchen547792075
giantchen547792075   2015.05.29 20:09

#include
void main()
{
int a, b, d,e=0;
for (a = 100;a<1000;a++)
{
do
{
b = a % 10;
d = a / 10;
e = e + b*b*b;
a = d;
} while (d = 0); //这里应该是“==”
if (a==e)
printf(" %d\n",e);
}
}

misskally
misskally 这样改后运行结果还是”1“
大约 3 年之前 回复
u012377333
u012377333   Rxr 2015.05.29 20:13

很明显的错误啊,判断符号==成了赋值符号=

misskally
misskally   2015.05.29 20:33

#include
void main()
{
int a, b, d, e = 0;
for (a = 100; ; a++)
{
do
{
b = a % 10;
d = a / 10;
e = e + b*b*b;
a = d;
} while (d != 0);
if (a == e)
printf(" %d\n", e);
诊断程序在VS2013中没有警告或错误,但是执行时弹出框只是光标在闪烁,没有其他任何数字或字母

guwei4037
guwei4037   Ds   Rxr 2015.05.29 20:43
devmiao
devmiao   Ds   Rxr 2015.05.29 20:57
 #include<stdio.h>
int main()
{
    int a, b,e=0;
    for (a = 100;a<1000;a++)
    {b=a;
         e = 0;
        while (b > 0)
        {
                    e += (b % 10) * (b % 10) * (b % 10);
                    b /= 10;
        }
        if (a==e)
            printf(" %d\n",e);
    }
}
devmiao
devmiao   Ds   Rxr 2015.05.29 20:57

http://codepad.org/SHGTLN3T

在线运行通过,结果
153
370
371
407

cuiwei1026522829
cuiwei1026522829   Ds   Rxr 2015.05.29 21:45
zzq060143
zzq060143   2015.05.30 11:36

#include
#include
void main()
{
int i,j,k,n;
printf("'water flower'number is:");
for(n=100;n<10000;n++)
{
i=n/100;/*分解出百位*/
j=n/10%10;/*分解出十位*/
k=n%10;/*分解出个位*/
if(n==i*i*i+j*j*j+k*k*k)
{
printf("%-5d",n);
}
}
printf("\n");
}

zzq060143
zzq060143 #include <stdio.h> #include <stdlib.h>这是两个头文件
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!