我老师给了我这个,添加
时出错了«setprecision(3) <<setiosflags(ios::fixed) »
你能告诉我为什么吗?
#include<iostream>
#include<math.h>
#include<iomanip>
using namespace std;
main()
{
float x1,y1,x2,y2,x3,y3,x4,y4,PQ,QR,RS,SP,Keliling;
cout << "Masukkan koordinat empat titik berbeda (x,y) :\n";
cout<< "P(x,y):" ;
cin >> x1>>y1 ;
cout <<"\n" ;
cout << "Q(x,y) :" ;
cin >> x2>>y2 ;
cout <<"\n" ;
cout << "R(x,y) :" ;
cin>> x3>>y3 ;
cout <<"\n" ;
cout << "S(x,y) :" ;
cin >>x4>>y4;
cout <<"\n" ;
PQ = sqrt(pow(x2-x1,2)+pow(y2-y1,2));
QR = sqrt(pow(x3-x2,2)+pow(y3-y2,2));
RS = sqrt(pow(x4-x3,2)+pow(y4-y3,2));
SP = sqrt(pow(x1-x4,2)+pow(y1-y4,2));
Keliling = PQ+QR+RS+SP;
cout << "Kelilingnya adalah " << Keliling <<" satuan";
«setprecision(3) <<setiosflags(ios::fixed) »
return 0 ;
}
答案 0 :(得分:4)
因为你误解了这条指令。你不能只是在程序结束时将它转储到代码中的代码中,并期望它神奇地工作,你不能在其上保留法语引号。
您需要从逻辑上思考您的程序的功能以及顺序。您想要完成什么,以及如何告诉计算机如何帮助您完成它?
一个良好的开端是谷歌搜索setprecision
以了解它是什么以及如何使用它。
此外,您的程序还有其他问题,例如main
缺少返回类型。
答案 1 :(得分:3)
sestprecision
是一个操纵器,您可以将其传递到cout
流来定义逗号后应显示的位数,例如:
cout << setprecision(2) << 0.122312 << endl;
将导致
0.12
它会导致错误,因为你没有把它放到流中但是无处 - 它不是一个声明!
答案 2 :(得分:1)
该行的问题在于它不是有效的cpp语句
setprecision语句需要连接到输出流,因为您使用的是标准输出。修正将如下所示
cout << setprecision(2) << fixed << endl;
再次就像preferencebean所说,你的主要功能应该包括一个返回类型。
int main()
{
//code;
}