很简单的C++题
[color=#FF0000][/color]以表格形式输出当x=1°,2°,‥‥,10°时的sin(x)、cos(x)、和tan(x)的值。要求输出时数据的宽度为10、左对齐和保留小数点后5位。[size=14px][/size]
我的部分代码
#include<iostream.h>
#include<iomanip.h>
#include<math.h>
void main()
{
double x;
cout<<"┌────┬─────┬─────┬─────┐"<<endl;
cout<<"│ x │ sin(x) │ cos(x) │ tan(x) │"<<endl;
cout<<"├────┼─────┼─────┼─────┤"<<endl;
x=1;
cout<<"│"<<cout.setf(ios::left)<<x<<" │";
cout.width(10);
cout.setf(ios::left);
cout<<setprecision(5)<<sin(x)<<"│";
cout.width(10);
cout.setf(ios::left);
cout<<setprecision(5)<<cos(x)<<"│";
cout.width(10);
cout.setf(ios::left);
cout<<setprecision(6)<<tan(x)<<"│"<<endl;
cout<<"├────┼─────┼─────┼─────┤"<<endl;
x=2;
cout<<"│"<<cout.setf(ios::left)<<x<<" │";
cout.width(10);
cout.setf(ios::left);
cout<<setprecision(5)<<sin(x)<<"│";
cout.width(10);
cout.setf(ios::left);
cout<<setprecision(5)<<cos(x)<<"│";
cout.width(10);
cout.setf(ios::left);
cout<<setprecision(6)<<tan(x)<<"│"<<endl;
cout<<"└────┴─────┴─────┴─────┘"<<endl;
}
的运行是
显示的X值分别是01,22。这是为什么呢?
[解决办法]
应该是输出 cout.setf(ios::left) 返回值了吧
[解决办法]
直接使用printf("%10.5lf", data);
#include <stdio.h>#include <math.h>int main(){ printf("%10.5lf", sin(1)); return 0;}
[解决办法]
#include <iostream>#include <iomanip>#include <cmath>using namespace std;int main(){double x;cout <<"┌────┬─────┬─────┬─────┐" <<endl;cout <<"│ x │ sin(x) │ cos(x) │ tan(x) │" <<endl;cout <<"├────┼─────┼─────┼─────┤" <<endl;x=1.0;cout <<"│" <<std::left<<x <<" │";cout.width(10);cout.setf(ios::left);cout <<setprecision(5) <<sin(x) <<"│";cout.width(10);cout.setf(ios::left);cout <<setprecision(5) <<cos(x) <<"│";cout.width(10);cout.setf(ios::left);cout <<setprecision(6) <<tan(x) <<"│" <<endl; cout <<"├────┼─────┼─────┼─────┤" <<endl;x=2.0;cout <<"│" <<std::left<<x <<" │";cout.width(10);cout.setf(ios::left);cout <<setprecision(5) <<sin(x) <<"│";cout.width(10);cout.setf(ios::left);cout <<setprecision(5) <<cos(x) <<"│";cout.width(10);cout.setf(ios::left);cout <<setprecision(6) <<tan(x) <<"│" <<endl; cout <<"└────┴─────┴─────┴─────┘"<<endl;return 0;}