#include <stdio.h>
#include<math.h>
int main()
{
double b[4],c[4],d[4],e,n,a[4];
for(n=0;n<4;n++)
{
scanf("%lf",&a[n]);
b[n]=a[n]/100;
c[n]=a[n]%100/10;
d[n]=a[n]%10;
do
{
if((pow(b[n],3)+pow(c[n],3)+pow(d[n],3))==a[n])
e=1;
else
e=0;
}
while(e=0);
printf("%g",a[n]);
}
return 0;
}
题目要求:计算机输入四个数,判断该四个数是否为水仙花数
水仙花数为:
首先n,e都不能是double,因为它负责计数,只能int,
然后while(e=0)中,e=0是赋值不是比较,它一直是真,改成e==0
供参考:
#include <stdio.h>
#include<math.h>
int main()
{
int b, c, d, e, n, a[4];
for (n = 100; n < 1000; n++)
{
//scanf("%d", &a[n]);
b = n / 100;
c = n / 10 % 10;
d = n % 10;
//do
//{
if ((b*b*b + c*c*c + d*d*d) == n)
printf("%d\n", n);
//else
// e = 0;
//} while (e = 0);
//printf("%g", a[n]);
}
return 0;
}