1. 程式人生 > >科學計數法 (20) 時間限制 1000 ms 記憶體限制 32768 KB 程式碼長度限制 100 KB 判斷程式 Standard (來自 小小)

科學計數法 (20) 時間限制 1000 ms 記憶體限制 32768 KB 程式碼長度限制 100 KB 判斷程式 Standard (來自 小小)

題目描述

科學計數法是科學家用來表示很大或很小的數字的一種方便的方法,其滿足正則表示式[+-][1-9]"."[0-9]+E[+-][0-9]+,即數字的整數部分
只有1位,小數部分至少有1位,該數字及其指數部分的正負號即使對正數也必定明確給出。

現以科學計數法的格式給出實數A,請編寫程式按普通數字表示法輸出A,並保證所有有效位都被保留。

輸入描述:

每個輸入包含1個測試用例,即一個以科學計數法表示的實數A。該數字的儲存長度不超過9999位元組,且其指數的絕對值不超過9999。

輸出描述:

對每個測試用例,在一行中按普通數字表示法輸出A,並保證所有有效位都被保留,包括末尾的0。

輸入例子:

+1.23400E-03

輸出例子:

0.00123400

#include<iostream>   using  namespace  std; int main() {    char a[10000];    int i,j,m=0,k;    scanf("%s",a);    if(a[0]=='-')  cout<<'-';     i=0;     while(a[i]!='E')  i++;           for(j=i+2;a[j]!='\0';j++)         m=m*10+a[j]-'0';     if(a[i+1]=='-')     {           cout<<0<<'.';              for(k=1;k<m;k++)  cout<<'0';         for(k=1;a[k]!='E';k++)             if(a[k]!='.')                 cout<<a[k];     }     else{         cout<<a[1];         for(k=3;k<i;k++)         {            if(k==3+m)              cout<<'.';             cout<<a[k];         }         for(;k<m+3;k++)         {            cout<<0;         }               }     cout<<endl;       return 0; }