C++程序,自守数为什么不能每行输出5个啊
来源:百度知道 编辑:UC知道 时间:2024/05/29 19:20:44
帮忙看一下,很着急。要求每行输出5个数。我运行的时候第一次可以保证每行输出5个,可是再继续输入的话,每行就不输出5个了。我知道是我计数时候初始值出了问题,可是不知道怎么改,帮帮我啊~~非常感谢,谢谢了谢谢了。
#include <iostream.h>
#include <math.h>
double type5(double m) //保证每行输出5个自守数
{
static int p=0;
cout<<m<<"\ ";
p++;
if(p%5==0)
cout<<endl;
return 0;
}
double weishu(double c,double d) //判断输入数字的位数并判断是否是自守数
{
int i=100;
double y;
while((int)c/i!=0) i=i*10;
if(fmod(d,(double)i)==0)
{
type5(c);
}
return 0;
}
double if_zss(double a,double b) //计算平方数与输入数的差
{
double x,m,n;
for(x=a;x<=b;x++)
{
m=x*x;
n=m-x;
weishu(x,n);
}
return 0;
}
void main()
{
double n,m;
cout<<"请输入您想要求的的自守数的范围下限,结束程序请输入0"<<end
#include <iostream.h>
#include <math.h>
double type5(double m) //保证每行输出5个自守数
{
static int p=0;
cout<<m<<"\ ";
p++;
if(p%5==0)
cout<<endl;
return 0;
}
double weishu(double c,double d) //判断输入数字的位数并判断是否是自守数
{
int i=100;
double y;
while((int)c/i!=0) i=i*10;
if(fmod(d,(double)i)==0)
{
type5(c);
}
return 0;
}
double if_zss(double a,double b) //计算平方数与输入数的差
{
double x,m,n;
for(x=a;x<=b;x++)
{
m=x*x;
n=m-x;
weishu(x,n);
}
return 0;
}
void main()
{
double n,m;
cout<<"请输入您想要求的的自守数的范围下限,结束程序请输入0"<<end
没错啊
你输出不是5个只是你的数据问题啊
因为符合条件的就不足5个
if(p%5==0)
cout<<endl;
改成if(p%5==0) {cout<<endl; p=0; }
我看了一下,感觉你的程序没有问题,输出控制也没有问题。
这个程序是在你给定的范围求自守数的,在给定范围有几个自守数,就会输出几个,输出个数控制只能说是在大于5的情况下每行最多输出5个数。
如果你的上下限设置为10到50,那么输出只有一个,那就是25.
(自守数就是一个数的平方的尾数和他本身相等)
double type5(double m) //保证每行输出5个自守数
{
static int p = 0;
if(p%5 == 0)
c