cout格式化输出

问题描述:

  有N条绳子, 它们的长度分别为Li. 如果从它们中切割出K条相同的绳子的话,这K条绳子每条最长能有多少?

  (备注:答案保留两位小数)

<1>精确到小数点后两位输出

#include <iostream>
#include <vector>
#include <iomanip>
using namespace std;
int getDiv(vector<int> li, int max){
	int ans =0;
	for(int i=0;i<li.size();++i){
		ans+=li[i]%max;
	}
	return ans;
}
int main(){
	int N,K,temp,max,sum=0;
	vector<int> li;
	cin>>N>>K;
	for(int i=0;i<N;++i){
		float t; cin>>t;
		temp = (int)(t*100);
		sum+=temp;
		li.push_back(temp);
	}
	max = sum/K;
	while(max*K+getDiv(li,max)>sum){
		max--;
	}
	cout.setf(ios::fixed); //按点输出显示 
	cout<<setprecision(2)<<max/100.<<endl;
	return 0;
}

<2>运行结果

  

总结

  设置小数点后精确到n位,需要引入头文件/setf(ios::fixed)/setprecision(n) 即可!

  #include <iomanip>

  cout.setf(ios::fixed); //按点输出显示 

  cout<<setprecision(2)<<max/100.<<endl;

原文地址:https://www.cnblogs.com/AbcFly/p/5894553.html