我编的C++程序帮忙看下错再哪了

来源:百度知道 编辑:UC知道 时间:2024/05/26 18:08:23
/*求1~10000之间所有满足各位数字的立方和等于他本身的数。e.g153=1^3+5^3+3^3*/
#include<stdio.h>
main(void)
{
int m,x,y,n,p,g;
p=0,m=n=1,x=1,y=1,g=0;
while(m<=10000)
{
x=m;
while(n)
{
n=x/10;
y=x%10;
g=y*y*y;
p=p+g;
x=n;
}
if (p==m)
{
printf ("%d",m);
}
m++;
}
}
还有这个,谢谢了
/*输入正整数n,输出2/1+3/2...的前N项的和,保留两位小数(该序列的从第2项起,每一项的分子是前一项分子与分母的和,分母是钱一项的分子)*/
#include<stdio.h>
int main(void)
{
int a=2,b=1,x,n,m=1;
double i,p=0;
scanf("%d",&n);
while(m<=n);
{
i=a*1.0/b;
x=a;
a=a+b;
b=x;
p=i+p;
m++;
}
printf("%.2f",p);
return 0;
}

第一个程序中必须在第一个循环中使p和n的值回归为初始值。

我写了一下:
#include<stdio.h>
int main(void)
{
int m,x,y,n,p,g;
p=0;m=n=1;x=1;y=1;g=0;
while(m<=10000)
{
x=m;
p=0;//这里回归一下。
n=1;//
while(n)
{

n=x/10;
y=x%10;
g=y*y*y;
p=p+g;
x=n;
}
if (p==m)
{
printf ("%d ",m);
}
m++;
}

return 0;
}