给出一个标准输入的正数(开头末尾没有多余的0),输出其科学计数法表示结果。
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'){ //小数
i=2;
while(v[i]=='0')
i++;
int xiaoshu=i+1-2;
if(i
printf("%c",v[i++]);//遇到第一个不为0的数直接输出
if(i
printf(".");//如果此后还有数字,则添加小数点
for(;i
printf("%c",v[i]); //之后输出剩下的小数位
printf("e-%d\n",xiaoshu);
}
else{ //大于1的数
i=0;
printf("%c.",v[0]); //第一位后加小数点输出
while(v[i]!='.'&&i
i++; //判断原数小数点之前的位数
int ex=i-1; //从而求得科学计数的E
for(i=1;i
if(v[i]!='.')
printf("%c",v[i]); //顺序输出剩下的数,要把小数点去掉
printf("e%d\n",ex);
}
return 0;
}