1024 科學計數法

2021-10-23 04:55:48 字數 874 閱讀 3370

注意點:

1.數字儲存長度不超過9999位元組,所以儲存字串長度需要大於等於10000。

2.一次性讀入字串,然後分割。pos代表「e」的位置,exp代表指數大小。

int pos=0;

while

(str[pos]

!='e'

) pos++

;

3.對於指數處理分三種情況:

1>. 指數=0,直接輸出字串,注意從下標1開始。

2>. 指數<0,輸出數字肯定以「0.」開頭。然後是exp-1個0,然後輸出原字串,這裡沒有特殊需要注意的。

3>. 指數》0,需要考慮原數字的長度和exp的大小,判斷是否需要輸出"."。因此對於原來數中的"."可以直接忽略了。「.」輸出位置的判斷通過i==exp+2&&pos-3>exp判斷,前者表示該點需要輸出「.」,後者表示數字長度大於exp才需要輸出「.」,需要兩者同時滿足。

最後就是判斷需不需要輸出多餘的0了。

#include

using

namespace std;

intmain()

for(i+=2

;i) exp=exp*10+

(str[i]

-'0');

if(exp==0)

for(i=

1;i)printf

("%c"

,str[i]);

if(str[pos+1]

=='-'

)else

for(i=

0;i3;i++

)printf

("0");

}return0;

}

1024 科學計數法

科學計數法是科學家用來表示很大或很小的數字的一種方便的方法,其滿足正規表示式 1 9 0 9 e 0 9 即數字的整數部分只有1位,小數部分至少有1位,該數字及其指數部分的正負號即使對正數也必定明確給出。現以科學計數法的格式給出實數a,請編寫程式按普通數字表示法輸出a,並保證所有有效位都被保留。輸入...

1024 科學計數法

科學計數法是科學家用來表示很大或很小的數字的一種方便的方法,其滿足正規表示式 1 9 0 9 e 0 9 即數字的整數部分只有1位,小數部分至少有1位,該數字及其指數部分的正負號即使對正數也必定明確給出。現以科學計數法的格式給出實數a,請編寫程式按普通數字表示法輸出a,並保證所有有效位都被保留。輸入...

1024 科學計數法

科學計數法是科學家用來表示很大或很小的數字的一種方便的方法,其滿足正規表示式 1 9 0 9 e 0 9 即數字的整數部分只有1位,小數部分至少有1位,該數字及其指數部分的正負號即使對正數也必定明確給出。現以科學計數法的格式給出實數a,請編寫程式按普通數字表示法輸出a,並保證所有有效位都被保留。輸入...