1024 科学计数法 (20 分) C语言
生活随笔
收集整理的這篇文章主要介紹了
1024 科学计数法 (20 分) C语言
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目連接:https://pintia.cn/problem-sets/994805260223102976/problems/994805297229447168
注意事項:
數字的整數部分只有 1 位,小數部分至少有 1 位,該數字及其指數部分的正負號即使對正數也必定明確給出。
代碼:
#include<stdio.h> #include<string.h>char s[15000],r1[1],r2[10008],loc; //數組r1用于存儲原有的整數位,數組r2用于存儲原有的小數位 int change=0;void backward(int l) {int u=0;printf("%s",r1);if(l<=change){printf("%s",r2);for(int i=0;i<(change-l);i++)printf("0");}else{for(int i=0;i<l;i++){if(i==change)printf(".");printf("%c",r2[i]);}}return; }void forward(int l) {printf("0.");for(int i=0;i<(change-1);i++)printf("0");printf("%s%s",r1,r2);return; }int main() {scanf("%s",s);int e=0,i=0,p=0,k=0,l=0;r1[0]=s[1];for(i=1;i<strlen(s);i++){if(s[i]=='E'){e=i;break;}if(s[i]=='.'){p=1;continue;}if(p==1){r2[l]=s[i];l++;}}i=e+2;for(i;i<strlen(s);i++){change*=10;change+=(s[i]-'0');}if(s[0]=='-')printf("%c",s[0]);if(s[e+1]=='+')backward(l); //小數點后退,即整數位增加else if(s[e+1]=='-')forward(l); //小數點前進,即整數位減少printf("\n");return 0; }總結
以上是生活随笔為你收集整理的1024 科学计数法 (20 分) C语言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue从入门到精通之高级篇(一)vue-
- 下一篇: oracle负数怎么比较大小,输出负数【