读书人

编撰一个求水仙花数的函数求3位正整

发布时间: 2013-12-13 13:57:17 作者: rapoo

编写一个求水仙花数的函数,求3位正整数的全部水仙花数中的次大值。
#include <STDIO.H>
#include <MATH.H> //预处理
\\获得水仙花数
void getbaby(int nums)
{

int number1,number10,number100,max=0;
number100=nums/100;
number10=nums/10%10;
number1=nums%10;

if (nums==pow(number1,3)+pow(number10,3)+pow(number100,3))

{
printf("%d\t",nums);

}
}
//主函数
main()
{int nums=100,max2,max=0;
printf("100到999的次大 水仙花数: ");
for (;nums<1000;nums++)
{
getbaby(nums);
if (max<nums)
{
max2=max;
max=nums;
}

}
printf("%d ",max2);
printf("\n ");

}
为什么次大数字输出是998。。。我要输出水仙花数的。。。次大数。
[解决办法]

#include <STDIO.H>   
#include <MATH.H> //预处理
\\获得水仙花数
bool getbaby(int nums)
{

int number1,number10,number100,max=0;
number100=nums/100;
number10=nums/10%10;
number1=nums%10;

if (nums==pow(number1,3)+pow(number10,3)+pow(number100,3))

{
printf("%d\t",nums);
return true;
}
else
{
return false;
}
}
//主函数
main()
{int nums=100,max2,max=0;
printf("100到999的次大 水仙花数: ");
for (;nums<1000;nums++)
{
if(getbaby(nums))
{
if (max<nums)
{
max2=max;
max=nums;
}
}
}
printf("%d ",max2);
printf("\n ");

}

读书人网 >C语言

热点推荐