日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

科学计数法 (C语言)

發布時間:2023/12/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 科学计数法 (C语言) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對于非常大或者非常小的數據,我們通常用科學記數法來表示。例如在科技文獻和電腦中經常遇到的 2.3×106 (計算機中的科學記數法表示為:2.3E6),或者 9.18×10-5 (科學記樹法表示:9.18E-5)這種類型的數據。

輸入:
??? 用科學記數法表示的數據。即為符合C語言表示的科學記數法表示。

輸出:
??? 該數據的雙精度表示

說明:
??? 輸入數據的精度不高于小數點后50位。
??? 輸入數據時,在實數之間有空格進行分隔,空格個數不定。
??? 結果保留到小數點后8位,如不足8位用0補足,超過8位則截斷,不進行四舍五入的處理。

#include <stdio.h> #include<math.h> int main(){int arr[100];int flen=0,blen=0,i=0,j=0,k=1,ci=0,e=1;char cc;for(i=0;i<100;i++){//initialize arr[i]=0;}i=0;do{//輸入小數點前的部分cc=getchar();ci=cc;if((ci>=48)&&(ci<=57)){//判斷為數字則存入數組arr[i]=ci-48;i++;flen++;//記錄整數的位數}if(cc=='.'){//檢測到小數點break; }if(cc==' '){//檢測到空格 break;}} while(1);i=flen;if('.'==cc){ //上個循環于小數點處結束,輸入小數部分do{cc=getchar();ci=cc;if((ci>=48)&&(ci<=57)){//判斷為數字,輸入arr[i++]=ci-48;blen++;//記錄小數的位數}if(cc==' '){//檢測到空格,小數輸入結束break;}} while(1);}//end numbers inputdo{cc=getchar();if((cc='e')||(cc='E')){scanf(" %d",&e);break;}}while(1);//Nothing wrong above//printf("%d\n%d\n%d\n",flen,blen,e);if(e>0){for(j=0;j<flen+e;j++){printf("%d",arr[j]);}printf(".");for(k=flen+e;k<flen+e+8;k++){printf("%d",arr[k]);}printf("\n");return 0;}if(e==0){for(j=0;j<flen;j++){printf("%d",arr[j]);}printf(".");for(k=flen;k<flen+8;k++){printf("%d",arr[k]);}printf("\n");return 0;}if(e<0){//power is nagetivee=0-e;if(e>=flen){//左移超出整數位數printf("0.");if((e-flen)<=8){for(j=1;j<=e-flen;j++){printf("0");}}else{for(j=1;j<=8;j++){printf("0");}}for(k=0;k<=(7-e+flen);k++){printf("%d",arr[k]);}printf("\n");}else{//左移不超過整數位數for(i=0;i<(flen-e);i++){printf("%d",arr[i]);}printf(".");for(i=flen-e;i<(flen-e+8);i++){printf("%d",arr[i]);}printf("\n"); return 0;}}}

總結

以上是生活随笔為你收集整理的科学计数法 (C语言)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。