PAT A1024

2017-11-20  本文已影响0人  Fattyu

科学计数法
https://www.patest.cn/contests/pat-b-practise/1024

#include<stdio.h>
#include<string.h>

int main()
{
    char str[10010];
    gets(str);
    int len=strlen(str);
    if(str[0]=='-')
        printf("-");
    int pos=0;//E的位置
    while(str[pos]!='E')
        pos++;
    int exp=0;//存放指数
    for(int i=pos+2;i<len;i++)
    {
        exp=exp*10+(str[i]-'0');
    }
    if(exp==0)
    {
        for(int i=1;i<pos;i++)
            printf("%c",str[i]);
    }
    if(str[pos+1]=='-'){
        printf("0.");
        for(int i=0;i<exp-1;i++)
            printf("0");
    printf("%c",str[1]);//输出剩余的数字
    for(int i=3;i<pos;i++)
        printf("%c",str[i]);
    }
    else
    {
        for(int i=1;i<pos;i++)
        {
            if(str[i]=='.')
                continue;
            printf("%c",str[i]);
            if(i==exp+2&&pos-3!=exp)//此时的条件
                printf(".");
        }
        for(int i=0;i<exp-(pos-3);i++)
            printf("0");
    }
    return 0;
}

上一篇 下一篇

猜你喜欢

热点阅读