“字符串碎片”之c++中输出小数点后指定位数
来源:互联网 发布:联通语音网络类型 编辑:程序博客网 时间:2024/05/16 19:29
题目 字符串碎片
一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的。例如,"aaabbaaac"是由下面碎片组成的:'aaa','bb','c'。牛牛现在给定一个字符串,请你帮助计算这个字符串的所有碎片的平均长度是多少。
输入描述:
输入包括一个字符串s,字符串s的长度length(1 ≤ length ≤ 50),s只含小写字母('a'-'z')
输出描述:
输出一个整数,表示所有碎片的平均长度,四舍五入保留两位小数。如样例所示: s = "aaabbaaac"所有碎片的平均长度 = (3 + 2 + 3 + 1) / 4 = 2.25
输入例子1:
aaabbaaac
输出例子1:
2.25
分析
1.数出字符串中碎片个数,可以首先用string中length()得到字符串长度,然后遍历每个字符,判断每相邻两个字符是否相同,进而得到碎片个数;
lengthstr = (float)str.length();for (int i = 0; i<lengthstr-1; i++) {if (str[i] != str[i + 1])temp++;}2.输出两位小数
可以有很多方法:(1)c语言中的printf()函数的格式化输出;(2)c++中fixed【浮点数以小数形式输出】与setprecision(n)【n为保留小数位数】组合使用;(3)自己写四舍五入算法函数。
(1)
printf("%0.2f",n);(2)
注意此处,必须添加头文件 #include<iomanip>
cout<<fixed<<setprecision(2)<< n << endl;/*或者cout.setf(ios::fixed);cout<<setprecision(2)<< n << endl;*/(3)
本人愚钝,此处附上其他大佬的想法
http://blog.csdn.net/jacketinsysu/article/details/52434669
代码
#include<iostream>#include<string>#include<iomanip>#include"cmath"using namespace std;float f1(string str){float lengthstr; //此处均定义为浮点数float temp = 1.0; //若为int型则lengthstr/temp为取整lengthstr = (float)str.length();for (int i = 0; i<lengthstr-1; i++) {if (str[i] != str[i + 1])temp++;}return lengthstr/temp;}int main() {string res;cin >> res;float n = f1(res);cout.setf(ios::fixed); //此处可以替换cout<<setprecision(2)<< n << endl;return 0;}
阅读全文
1 0
- “字符串碎片”之c++中输出小数点后指定位数
- C++——cout输出小数点后指定位数
- JavaScript之保留小数点后指定位数
- C++指定小数点位数输出
- 保存小数点后指定位数
- double中保留小数点后指定长度位数
- MATLAB中控制输出格式中小数点后的位数
- 【C++】设置输出小数点位数
- 在字符串中删除对应位数的字符,然后 输出删除指定字符后的字符串
- 小数点后指定位数的四舍五入
- java指定小数点后位数格式
- 固定cout输出的小数点后位数
- C++格式化输出小数点后位数
- 格式化输出只有固定小数点后位数
- C#之保留指定小数点位数
- C语言控制输出小数点位数
- c语言控制输出格式-小数点位数
- c/c++保留小数点后位数
- 122. Best Time to Buy and Sell Stock II
- noip2006 金明的预算方案
- 用java查看有没有运行进程,或者关闭进程
- swoole安装失败
- UVALive 6255 Kingdoms
- “字符串碎片”之c++中输出小数点后指定位数
- spring整合hibernate细节
- NYOJ99 欧拉图
- plsql远程连接数据库
- Facebook SDE onsite面经
- 链表中倒数第k个节点(剑指Offer 第14 题)
- 对线性回归、逻辑回归、各种回归的概念学习
- MySQL 学习随笔
- C++笔试题(十五).富途证券 & 猎豹移动 & TP-LINK