感觉没有进行判断
#include <iostream>#include "math.h"
using namespace std;
int main()
{
// 开方数值的输入
int s;
cout << "请输入一个正整数(要开方的数值):" << endl;
cin >> s;
double result = sqrt( s );
// 小数点保留位数的输入
int data1;
cout << "请输入一个数字(这是你想要保留小数点的精确值):" << endl;
cin >> data1;
cout << "开方 " << s << " 的保留小数点后 0 - " << data1 << "位,结果如下:\n" << endl;
// 判断并计算
for (int i = 1; i <= data1; i++)
{
/*
cout.precision(i);
cout << result << endl;
*/
if(data1 >= i)
{
cout.precision(i);
cout << result << endl;
}
else
{
cout << "输入的值错误(请输入“大于”或“等于”0 的值)" << endl;
return main();
}
}
cout << "当前的精度为:"<< cout.precision() << endl;
return 0;
}
为什么我输入data1的值等于-1 的时候他没有按照我的要求来报错咧???求解答 在第二个cin前面加一个getchar();清空输入流数据 因为你data1 = -1的时候,for循环循环条件i <= data1不成立(你for循环把i初始化成1,然后看看i(-1)是否小于等于data1(-1),不成立),for循环根本不会被执行,程序退出。
然而报错代码是在for循环体内,所以不会报错。
页:
[1]