c语言科学计数法输出1_e10,北航13年机试--十进制数字的科学计数法表示的C语言实现...
給出一個(gè)標(biāo)準(zhǔn)輸入的正數(shù)(開頭末尾沒有多余的0),輸出其科學(xué)計(jì)數(shù)法表示結(jié)果。
Example:
輸入0.000002,輸出2e-6
輸入123.456,輸出1.23456e2
輸入123456,輸出1.23456e2
#include
#include
#include
int main(){
char v[10000]={'\0'};
scanf("%s",v);
int i;
int len=strlen(v);
if(v[0]=='0'){ //小數(shù)
i=2;
while(v[i]=='0')
i++;
int xiaoshu=i+1-2;
if(i
printf("%c",v[i++]);//遇到第一個(gè)不為0的數(shù)直接輸出
if(i
printf(".");//如果此后還有數(shù)字,則添加小數(shù)點(diǎn)
for(;i
printf("%c",v[i]); //之后輸出剩下的小數(shù)位
printf("e-%d\n",xiaoshu);
}
else{ //大于1的數(shù)
i=0;
printf("%c.",v[0]); //第一位后加小數(shù)點(diǎn)輸出
while(v[i]!='.'&&i
i++; //判斷原數(shù)小數(shù)點(diǎn)之前的位數(shù)
int ex=i-1; //從而求得科學(xué)計(jì)數(shù)的E
for(i=1;i
if(v[i]!='.')
printf("%c",v[i]); //順序輸出剩下的數(shù),要把小數(shù)點(diǎn)去掉
printf("e%d\n",ex);
}
return 0;
}
總結(jié)
以上是生活随笔為你收集整理的c语言科学计数法输出1_e10,北航13年机试--十进制数字的科学计数法表示的C语言实现...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息展示类图表设计指南:10个必须遵循的
- 下一篇: dematel法分析系统中各要素的重要程