PAT A1024

作者: Fattyu | 来源:发表于2017-11-20 23:01 被阅读0次

    科学计数法
    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;
    }
    
    

    相关文章

      网友评论

          本文标题:PAT A1024

          本文链接:https://www.haomeiwen.com/subject/rbndjxtx.html