C语言如何输出第二大数???

来源:百度知道 编辑:UC知道 时间:2024/06/16 00:20:35
有一个三位数满足条件:1;三数字个不相同;2;个位数的立方和等于该三位数;
求这样的三位数中的第二大的数是多少???
拜托啦!!还请高手不吝赐教呀@_@

先分离三个位数(假如是123):
a=123/100=1
b=(123/10)%10=2
c=123%10=3

然后判断a≠b≠c,并且c*c*c=123 就好了。

再接着外面套个循环,从100到999。

最后找出倒数第二个就OK了。

之所以不直接写出代码,是为了LZ能够更好的提高自己的编写程序的水平。

#include <stdio.h>
void main()
{
int a,b,c;
for(a=0;a<8;a++) //如果不要0,a=1开始
{
for(b=a+1;b<9;b++)
{
for(c=b+1;c<10;c++)
{
if(a*a*a+b*b*b+c*c*c==a*100+b*10+c ||
a*a*a+b*b*b+c*c*c==a*100+b+c*10 ||
a*a*a+b*b*b+c*c*c==a*10+b*100+c ||
a*a*a+b*b*b+c*c*c==a*10+b+c*100 ||
a*a*a+b*b*b+c*c*c==a+b*100+c*10 ||
a*a*a+b*b*b+c*c*c==a+b*10+c*100)
printf("a=%d b=%d c=%d 第二大的数=%d\n",a,b,c,b);
}
}
}
}

您好,您说的这种数叫“水仙花数”
用C语言实现的代码如下:
#include <stdio.h>
int main(void)
{
int a,b,c;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
if(100*a+