-
题目
-
代码
#include <stdio.h> #include <cstring> #include <iostream> using namespace std; int main(){ char str[10010]; cin.getline(str,10010); int len=strlen(str); if(str[0]=='-'){ //负数 printf("-"); } int pos=0; //E左侧 pos:E的位置 while(str[pos]!='E'){ pos++; } //E右侧 exp:指数的绝对值 int exp=0; for(int i=pos+2;i<len;i++){ exp=exp*10+(str[i]-'0'); } if(exp==0){ for(int i=0;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笔记:1024 科学计数法 (20分)
最新推荐文章于 2024-07-10 07:45:00 发布