我设计的C程序算水仙花数那里有问题?

来源:百度知道 编辑:UC知道 时间:2024/05/28 16:56:12
#include<stdio.h>
main()
{
int x,y,z;

for(x=1;x<=9;x++)
{

for(y=1;y<=9;y++)
{
for(z=1;z<=9;z++)
{
if(x*x*x+y*y*y+z*z*z==100*x+10*y+z)
printf(" %d,%d,%d ",&x,&y,&z);

}
}
}
system("pause");
}

请高手帮我指出错误```我算出的结果

x,y,z三个值是6位数``我明明设置了x,y,z只在9以下啊`````

printf(" %d,%d,%d ",&x,&y,&z); 这里的问题,修改为
printf(" %d,%d,%d ",x,y,z);

&是取地址符,printf语句中不需要用,改成printf(" %d,%d,%d ",x,y,z); 就行了

printf("%d,%d,%d ",x,y,z);
还有你的水仙花数算法错了
Y和Z可以等于0;
你没考虑

printf()函数改成printf("%d,%d,%d ",x,y,z);
&是取址符,printf()函数不需要取址符
还有,y和z是可以为零的,你没有考虑
#include<stdio.h>
int main()
{
int x, y, z;
for (x = 1;x <= 9; x++)
{
for (y = 0; y <= 9; y++)
{
for (z = 0; z <= 9; z++)
{
if (x * x * x + y * y * y + z * z * z == 100 * x + 10 * y + z)
printf(" %d,%d,%d ", x, y, z);
}
}
}
return 0;;
}