首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

编撰一个求水仙花数的函数,求3位正整数的全部水仙花数中的次大值

2013-12-13 
编写一个求水仙花数的函数,求3位正整数的全部水仙花数中的次大值。#include STDIO.H#include MATH.H//

编写一个求水仙花数的函数,求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 ");

}

热点排行