这是我第一次使用C ++,我的作业分配如下,尝试在其下面。
我不确定如何开始为第2段中的过程构建循环。尽管如此 这些说明对我来说没有意义。
到目前为止我的进展:
int
sqroot()
{
cout << setiosflags (ios::fixed|ios::showpoint); //assumed I need for output later
double number;
cout<<"Enter the number to find the square root of: ";
cin>>number;
int sqRoot = 1;
while (sqRoot*sqRoot < number) // sqRoot is too small
sqRoot++; // try the next number
int y=0;
int newRoot =1;
while (y < number)
{
if (newRoot*newRoot > number )
break;
y=newRoot*newRoot;
newRoot++;
}
int decimalInput;
int decimalPosition= 0;
cout<<"Enter the desired decimal position: "<<endl;
cin>>decimalInput;
while (decimalPosition < decimalInput)
decimalPosition++;
return 0;
}
答案 0 :(得分:0)
你不应该只是增加新的newRoot 1(newRoot ++),而是通过更小的步骤。为了提高效率,你可以开始大步(10的大功率,例如1000)。在结果的平方大于输入数之前,将此步骤除以10。
额外提示:
有两个嵌套循环。外循环检查步&gt; =错误,内循环检查结果是否足够小。