1024 科學計數法,C

2021-10-03 01:36:12 字數 1395 閱讀 1138

這題挺麻煩的,各種小數點和正負號搞的亂死,看的時候要看仔細了,我特意用1.1~2.3標出了6種情況,實際上只分了3種,前3種情況理解了,後面的就是對應地方都-1的問題

#include

#include

intmain()

;//輸入

char b[

20000]=

;//輸出

int d=

0,i=

2,x=

0,n=

0,j=0;

scanf

("%s"

,a);

//printf("%s\n",a); 檢驗是否正確接收字串

while

( a[n]

!='e'

) n++

;//結束後,a[n]=='e'

while

( a[n+x]

) x++

; x = x-2;

//結束後,指數部分有x位數

while

(x)if

(a[n+1]

=='-'

) d = d *(-

1);//d是小數點要左或右移動多少位

//printf("%d\n",d); 檢驗指數部分d是否正確

i=0;if

( a[0]

==45

)//1.負數,負數與正數只有第乙個符號有無的區別,內容相似

if( a[

3+i]

!=69

)//要加'.'

}while

( d )

//要補'0'

}else

if(d==0)

- 0情況

while

(a[i]

!=69

)else

- -情況

b[3+i]

= a[1]

; i++

;while

( a[

3+j]

!=69)}

}else

//2.正數

if( a[

3+i]

!=69)}

while

( d )

}else

if(d==0)

+ 0情況

while

(a[i+1]

!=69

)else

+ -情況

b[2+i]

= a[1]

; i++

;while

( a[

3+j]

!=69)}

}printf

("%s\n"

,b);

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,並保證所有有效位都被保留。輸入...