我编的C++程序帮忙看下错再哪了
/*求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; }
都是细节方面的问题。。。 第一段代码,在while(n)上面要加一句p=0; 因为你缺少这一句,p值没有重置,所以p就不断地累加数值上去了,下面p==m这个条件语句基本上就不能符合了。 第二段代码,while(m main(void) { int m,x,y,n,p,g; p=0,m=n=1,x=1,y=1,g=0; while(m 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\n",p); return 0; }
答:/* 编程: 求1-10000之间所有满足各位数字的立方和等于它本身的数。 例如:153的各位数字的立方和是1*1*1+5*5*5+3*3*3=153 。 */...详情>>
问:挺简单的一C函数,不过我是初学者,暂时还不会写,请好心人多多帮忙!
答:int mystrlen(char *str) { int n = 0; while (*str) { n++; str++;} return n; } voi...详情>>