c++高手进

来源:百度知道 编辑:UC知道 时间:2024/06/24 06:39:30
问两个题目
1.求菲波那契数列前40个数
数列是这样的 首项和第二项是1 从第三项开始
每一项等于前两项的和
我用vc++编译如下

#include<iostream.h>
#include<math.h>
void main()
{
int i=0,a=0,b=1,c;
for(i=1;i<=39;i=i+1)
{
c=a+b;
a=b;
b=c;
}
cout<<"这四十个数为"<<","<<c<<endl;
}
结果却只有一个数102334155 为什么会是这样?????

问题二
求所有满足下列情况的三位数
各位数字的立方和等于该数本身。
语言如下

#include<iostream.h>
#include<math.h>
void main()
{

int a,b,c;
for(a=1;a<10;a++);
for(b=0;b<10;b++);
for(c=0;c<10;c++);
if(pow(a,3.0)+pow(b,3.0)+pow(c,3.0)==100*a+10*b+c)
cout<<"水仙花数为"<<100*a+10*b+c<<endl;
else
cout<<"这不是水仙花数"<<endl;
}
结果只有“这不是水仙花数” 怎么会这样?

另外 学程序感觉很艰难 请有识之士给予建议

最后希望各位大侠能给详细的解答!!先谢谢了!!!!!!

都循环完只剩c了,输出当然是一个数。
#include<iostream.h>
#include<math.h>
void main()
{
cout<<"这四十个数为";//这里
int i=0,a=0,b=1,c;
for(i=0;i<=39;i++)//这里
{
c=a+b;
a=b;
b=c;
cout<<c<<","<<endl; //这里
}
}

第二题三个for循环都是空语句,执行后a=b=c=9,当然不合题意。
这个改的只是个大概意思,你看看后自己再变一下。
#include<iostream.h>
#include<math.h>
void main()
{

int a,b,c;
for(a=1;a<10;a++)
{
for(b=0;b<10;b++)
{
for(c=0;c<10;c++)
{
if(pow(a,3.0)+pow(b,3.0)+pow(c,3.0)==100*a+10*b+c)
cout<<"水仙花数为"<<100*a+10*b+c<<endl;
else
cout<<"这不是水仙花数"<<endl;
}
}}}

z

问题一(cout语句位置不对,要放在循环里面;还是,你落了第一个数“1”)下面是正确的程序:
#include<iostream.h>
#include<math.h>
void main()
{
int i=0,a=0,b=1,c;
cout&l