main() -----有些C編譯器,可能還要妳在前面寫上void
{ int a=100,b,c,d=0;
printf("100到999的水仙花數分別是:\n");
do
{ b=a;
a++; ----這個地方有問題,不能先改變這個a,得等與d比較完成後才能變
do
{ c=b%10;
d=d+c*c*c;--------d的初值應該放在內循環的外面,不能放在外循環的外面.
b=b/10;
}while(b>0);
if(d==a)
printf("%d ",a);
}while(a<=999);
}
改動後的程序如下:
#include<stdio.h>
void main() ---如果妳的編譯器沒問題,可不加void
{ int a=100,b,c,d=0;
printf("100到999的水仙花數分別是:\n");
do
{ b=a;
d=0; -----d的初值
do
{ c=b%10;
d=d+c*c*c;
b=b/10;
}while(b>0);
if(d==a)
printf("%d ",a);
a++; ----a加壹,再計算下壹個
}while(a<=999);
}