ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

1073 Scientific Notation (20分)

2020-03-06 12:51:17  阅读:262  来源: 互联网

标签:index 20 Notation tar res 1073 printf n3 string


1. 题目

2. 思路

常规题

3. 注意点

  1. 注意小数点移动位置
  2. 注意段错误, 一般段错误都是数组开的不够大
  3. 指数为0

4. 代码

#include<cstdio>
#include<algorithm>
#include<string>
#include<vector>

using namespace std;

struct num{
    char c1;
    char n1;
    string n2;
    char c2;
    int n3;
};

num assign(string tar){
    num res;
    res.c1 = tar[0];
    res.n1 = tar[1];
    int index = tar.find('E');
    res.n2 = tar.substr(3, index-3);
    index++;
    res.c2 = tar[index];
    index++;
    sscanf(tar.data()+index, "%d", &res.n3);
    return res;
} 

int main(){
    char s[10000];
    scanf("%s", s);
    string tar = s;
    num n = assign(tar);
    if(n.c1 == '-'){
        printf("%c", n.c1);
    }
    string res = n.n1 + n.n2;
    if(n.n3 == 0){
        res.insert(1, ".");
        printf("%s", res.data());
        return 0;
    }
    if(n.c2 == '+'){
        if(n.n3<res.length()-1){
            res.insert(n.n3+1, ".");
        }else if(n.n3>res.length()-1){
            res+=string(n.n3-res.length()+1, '0');
        }
        printf("%s", res.data());
    }else{
        res.insert(0, n.n3-1, '0');
        res.insert(0, "0.");
        printf("%s", res.data());
    }
}

标签:index,20,Notation,tar,res,1073,printf,n3,string
来源: https://www.cnblogs.com/d-i-p/p/12425939.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有