1024 科學計數法 20

2021-10-25 08:43:59 字數 1133 閱讀 7947

原題:

實現思路: 按照前後符號不同可以分4種情況, 分別如下

input: +1.23400e-03 output: 0.00123400

input: -1.2e-10 output: -0.00000000012 (一共10個0)

input: -1.2e+10 output: -12000000000 (一共9個0)

input: +1.23400e+03 output: 1234.00

首先, 經過我的測試, 明確一點, 並不存在e-0, e+0這種情況.

正如***的**定義的變數一樣, 通過迴圈我們需要拿出: 中間字串, 第1, 第2個符號,

最後的整數.

事實上具體到**實現, 我們只需要按照第2個符號的不同, 分2種情況即可.

首先是第2個符號是負號, 也就是e-x, 這種形式, 結果肯定是形如0.00123400這種形式,

可以看到, 唯一需要確定就是中間有多少個0的問題, 通過分析可知, 中間需要end-1個0,

也就是e後面數的絕對值-1

第2種情況是後面的符號是正號的情況, 這種情況稍微有點複雜, 需要分成小數點在中間和

小數點在末尾(也就是無小數點)兩種情況. 小數點在末尾我們可以通過2次迴圈, 第1次把我們

提取出來的中間字串放進結果陣列, 第2次把0新增到小數點之前. 小數點在中間的情況只需

遍歷我們提取出來的字串, 在適當的位置插入小數點即可.

完整c語言實現:

#include int main () 

mid[mlen] = *ptr;

mlen++;

ptr++;

if (*ptr == 'e')

}// 把end拿到

while (*ptr != '\0')

// 現在搞res結果陣列, 一共分2種情況

if (two == '-')

for (i=0; i= mlen + 1)

temp = rlen;

for (i=temp; i} else }}

}// 列印

for (i=0; iprintf("%c", res[i]);

}return 0;

}

1024 科學計數法 20

時間限制 100 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 hou,qiming 科學計數法是科學家用來表示很大或很小的數字的一種方便的方法,其滿足正規表示式 1 9 0 9 e 0 9 即數字的整數部分只有1位,小數部分至少有1位,該數字及其指數...

1024 科學計數法 20

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

1024 科學計數法 20

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