给出一个标准输入的正数(开头末尾没有多余的0),输出其科学计数法表示结果。比如:输入0.000002,输出2e-6;输入123.456,输出1.23456e2;输入123456,输出1.23456e2
解题:
首先将其放入到Char数组中,找到loc即为小数点所在位数,和first 即为第一位非零数的位置。然后分两种情况输出,大于1和小于1的两种情况;大于一是10的指数是loc - first-1;
小于一的10的指数是loc - first; 注意要判断一下是否要输出“.”,因为当first == 总长-1 不用输出“.”
#include <cstdio>
#include <string.h>
#define maxn 105
int main()
{
char s[maxn] ;
while ( scanf("%s",s) )
{
int loc = 0 ;
for ( int i = 0 ; i < strlen(s) ; i ++ )
{
if( s[i] == '.')
{
loc = i;
break;
}
}
int first = 0;
for ( int i = 0 ; i < strlen(s) ; i++)
{
if(s[i] != '0'&&s[i] !='.')