[PAT解题报告] Scientific Notation
简单题,字符串处理,把科学计数法转变为普通浮点数。
科学计数法是一位整数的标准形式,保证有E,并且带指数。可以先找到E,把E转变为空格,然后把指数读出来,如果指数是0,则把E之前的完整输出。
如果指数小于0,则一定是0.xxxx, 注意调整小数点,小数点后补0,输出即可。
如果指数大于0,则一定大于等于1,同样注意小数点,而且有可能最后没有小数点了,结尾还可能要补0。
请注意如果原来输入末尾有0,能不动就补动。

#include <cstdio>
#include <cstring>
#include <string>

char s[10010];

void help(char *s) {
char *p = strstr(s, "E");
int e;
    sscanf(p + 1, "%d", &e);
    *p = 0;
    if (e == 0) {
        puts(s);
    }
    else if (e < 0) {
        printf("0.");
        for (++e;e;++e) {
            putchar('0');
        }
        for (;*s;++s) {
            if (*s != '.') {
                putchar(*s);
            }
        }
        puts("");
    }
    else {
        putchar(*s++);
        for (++s; (*s) && e; --e, ++s) {
            putchar(*s);
        }
        if (*s) {
            putchar('.');
            for (;*s;++s) {
                putchar(*s);
            }
        }
        else {
            for (;e;--e) {
                putchar('0');
            }
        }
        puts("");    
    }    
}
int main() {
    scanf("%s",s);
    if (s[0] == '-') {
        putchar('-');
    }
    if ((s[0] == '+') || (s[0] == '-')) {
        help(s + 1);
    }
    else {
        help(s);
    }
}

原题链接: http://www.patest.cn/contests/pat-a-practise/1073

注意!此信息未认证,请谨慎判断信息的真实性!

全部评论
空

相关内容推荐

头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像 头像
2022-12-10 18:47
门头沟学院_2023
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
2022-12-22 16:38
江苏大学_2023
点赞 评论 收藏
转发
点赞 收藏 评论
分享

全站热榜

正在热议