哪位C++高手帮我看一下这个求自守数的程序有什么问题??不胜感激

来源:百度知道 编辑:UC知道 时间:2024/06/08 14:52:27
我是C++初学者。编了一个求一定范围内的所有自守数的C++程序,但是运行后总有问题,哪位高手帮我指出错误??不胜感激!!!

#include<iostream.h>
#include<math.h>

int wei(int m) //判断位数
{
int n;
int result;
for(n=5;n>=1;n--){
int a=m/pow(10,n);
if(a!=0)int result=n+1;
}
return result;
}

double zi(double z) //判断是否是自守数
{
double m=wei(z);
double r=z*z;
double p=r-z;
if(p/pow(10,m)==0){
return true;
}
else{
return false;
}
}

double main()
{
cout<<"请输入小于200000的一个范围,a<b"<<endl; //限定范围
cout<<"a=";
double a;
cin>>a;
cout<<"b=";
double b;
cin>>b;
double m=wei(a);
double n=wei(b);
double i;
for(i=a;i<=b;i++){ //判断哪些数是自守数
if(d

#include<iostream.h>
#include<math.h>

int wei(long m) //判断位数
{
int n;
int result = 0;
/*for(n=5;n>=1;n--){
int a=m/pow(10,n);
if(a!=0)int result=n+1;
} */

while ( m != 0)
{
result++;
m /= 10;
}
return result;
}

bool zi(long z) //判断是否是自守数
{
int m=wei(z);
long r=z*z;
long p=1;

for (int i = 1; i <= m; ++i)
{
p *= 10;
}
if( r%p == z){
return true;
}
else{
return false;
}
}

int main()
{
cout<<"请输入小于200000的一个范围,a<b"<<endl; //限定范围
cout<<"a=";
long a;
cin>>a;

cout<<"b=";
long b;
cin>>b;

/*double m=wei(a);
double n=wei(b); */
long i;
for(i=a;i<=b;i++){ //判断哪些数是自守数
if( zi(i) && i != 0 && i !=