PATB1024:科学记数法
2016-09-04 20:04
267 查看
PATB1024:科学记数法
【思路】:输出的字符串由几部分组成 通过 i str[i] 来索引输出字符串
每部分 需要满足什么条件 才输出
常用的是 str[i] pos pos-3 表示长度 exp为字符–》转换成数字
【知识点】
每部分 需要满足什么条件 才输出
for (int i = 1; i < pos; i++)//也是分成3 部分 思考每部分满足什么条件是输出什么 { if (str[i] == '.') { continue; } cout << str[i]; if (i== exp +2 && pos-3 > exp ) //i== exp +2为放小数点的位置 pos-3数字个数要比 指数部分位数要大 { cout << "."; } }
跳过循环countine
for (int i = 1; i < pos; i++) { if (str[i] == '.') { continue; } cout << str[i]; }
* exp为字符–》转换成数字*
for (int i = pos + 2; i < strlen(str); i++) { exp = exp * 10 + str[i] -'0'; }
【知识点】
找到特定字符的位置索引
for (int i = 0; i < strlen(str); i++) { if (str[i] == 'E') { pos = i; break;//及时退出 } }
【参考答案】
//科学计数法
//给定字符串 按照要求输入字符 和计算控制说得。对于字符串主要是 长度是多少 循环多少次 该字符的位置是什么。等等 此处应该有总结。
void B1024(){
char str[10100];
cin >> str;
int pos,exp=0;
///找到E的位置 pos-3是个数
for (int i = 0; i < strlen(str); i++) { if (str[i] == 'E') { pos = i; break;//及时退出 } }//将指数的字符转换成数字
for (int i = pos + 2; i < strlen(str); i++)
{
if (str[0] == '-'){
cout << '-';
}
//输出exp = exp * 10 + str[i] -'0';
}
if (str[pos+1] == '-') //分成三部分 思考这个字符串 应该分成几部分 每部分由那些字符生成
{
cout << "0.";
for (int i = 0; i < exp-1; i++)
{
cout << '0';
}
for (int i = 1; i < pos; i++)
{
if (str[i] == '.')
{
continue;
}
cout << str[i];
}
}
else{
for (int i = 1; i < pos; i++)//也是分成3 部分 思考每部分满足什么条件是输出什么
{
if (str[i] == '.')
{
continue;
}
cout << str[i];
if (i== exp +2 && pos-3 > exp ) //i== exp +2为放小数点的位置
{
cout << ".";
}
}
for (int i = 0; i < exp -(pos-3); i++)
{
cout << "0";
}
}
}
相关文章推荐
- PAT 乙等 1024 科学记数法 C语言
- PAT乙级1024 科学记数法
- patb1016部分a+b
- 4MB to 1024 x 4KB...
- 10.2 " TFT(1024*600)Laptop S30 Perfect for Business and Entertainment
- HDU 1024(DP)
- HDOJ 1024 M子段最大和问题
- 1024分辨率《加勒比海盗4》BD中英双字无水印
- hdu 1024 Max Sum Plus Plus
- 谷歌面试题:1024! 末尾有多少个0?
- 如何在TPLink 路由器上禁止UDP端口1024-65534?
- 谷歌面试题:1024! 末尾有多少个0?
- 友坚Android210支持LVDS 1024*600 10.1寸高清屏
- MySQL 中一个库中表数量是否有限制?表太多是否影响数据的性能?比如要把一张表拆成 1024 张,对于每个表的性能的影响是什么?这些影响需要考虑哪些因素?
- hdu 1024(滚动数组的学习)
- 【搜索】[SCOI2009] 生日快乐 BZOJ 1024
- BZOJ 1024 [SCOI2009] 生日快乐 题解与分析
- hdu 1024
- Ural1024 Permutations