求某数各位的数立方和等于自身
#include<stdio.h>
int is(int number);
int main(void)
{
int m,n,i,t;
printf("Enter m,n:\n");
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
t=is(i);
printf("%d",t);
return 0;
}
int is(int number)
{
int a,b,c,y;
a=number/100;
b=number/10-a*10;
c=number%10;
y=a*a*a+b*b*b+c*c*c;
if(y==number)
return number;
}
有个警告:
warning C4715: “is”: 不是所有的控件路径都返回值,应该如何改,
即使我加了个else也达不到预想的结果
[解决办法]
if(y==number)
return number;
rerurn 0; //后面加上这条就没warning 了
[解决办法]
- C/C++ code
#include<stdio.h>int is(int number);int main(void){int m,n,i,t;printf("Enter m,n:\n");scanf("%d%d",&m,&n);for(i=m;i<=n;i++){ t=is(i); if (t) printf("%d\n",t); } return 0;}int is(int number){int a,b,c,y;a=number/100;b=number/10-a*10;c=number%10;y=a*a*a+b*b*b+c*c*c;if(y==number) return number; return 0; }
[解决办法]
- C/C++ code
main(){int i,j,k,n;printf("'water flower'number is:");for(n=100;n<1000;n++) { i=n/100; j=(n-i*100)/10; k=n%10; if(i*i*i+j*j*j+k*k*k==n) printf("%d\n",n); }}
[解决办法]
程序没有判3位数,所以1与1000都出来了,改进一下
- C/C++ code
#include<stdio.h>int is(int number);int main(void){int m,n,i,t;printf("Enter m,n:\n");scanf("%d%d",&m,&n);if (m<100) m=100;if (n>999) n=999; for(i=m;i<=n;i++){ t=is(i); if (t) printf("%d\n",t); } return 0;}int is(int number){int a,b,c,y;a=number/100;b=number/10-a*10;c=number%10;y=a*a*a+b*b*b+c*c*c;if(y==number) return number; return 0; }