花了半个小时,强行拗出一长串又臭又长的代码,把所有情况都分了(该分的,不该分的……都分了……)

 #include<cstdio>
#include<cstring>
#include<cmath>
#define MAX 120
char num[MAX],d[MAX],b_[],b;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%s",num);
if(num[]=='')
{
int i,cnt;
for(i=,cnt=;;i++,cnt++)
{
if(num[i]=='e') break;
d[cnt]=num[i];
}
d[cnt]='\0';
i++;
for(cnt=;num[i];i++,cnt++) b_[cnt]=num[i];
b_[cnt]='\0';
int len_b=strlen(b_);
b=;
for(i=;i<len_b;i++) b+=(b_[i]-'')*(int)pow(,(len_b--i));
int len_d=strlen(d);
if(len_d== && d[]=='')//这个数是0
{
printf("0\n");
}
else if(b<len_d)//不需要添加后缀0,需要移动小数点,并去掉前缀0
{
int d_0=;
for(i=;i<len_d;i++)
{
if(d[i]!='') break;
if(d[i]=='') d_0++;
}//前缀0个数
if(b<=d_0)//b <= d的前缀0个数,n<1
{
printf("0.");
for(i=b;i<len_d;i++) printf("%c",d[i]);
printf("\n");
}
else//b > d的前缀0个数,n>=1
{
for(i=d_0;i<b;i++) printf("%c",d[i]);
printf(".");
for(;i<len_d;i++) printf("%c",d[i]);
printf("\n");
}
}
else if(b==len_d)//直接去掉小数点,并去掉前缀0
{
for(i=;i<len_d;i++) if(d[i]!='') break;
for(;i<len_d;i++) printf("%c",d[i]);
printf("\n");
}
else//需要添加后缀0,并且去掉前缀0
{
for(i=;i<len_d;i++) if(d[i]!='') break;
for(;i<len_d;i++) printf("%c",d[i]);
for(i=;i<=b-len_d;i++) printf("");
printf("\n");
}
}
else
{
int i,cnt;
for(i=,cnt=;;i++,cnt++)
{
if(num[i]=='e') break;
d[cnt]=num[i];
}
d[cnt]='\0';
i++;
for(cnt=;num[i];i++,cnt++) b_[cnt]=num[i];
b_[cnt]='\0';
int len_b=strlen(b_);
b=;
for(i=;i<len_b;i++) b+=(b_[i]-'')*(int)pow(,(len_b--i));
int len_d=strlen(d);
if(b<len_d)//不需要添加0,需要移动小数点
{
printf("%c",num[]);
for(i=;i<b;i++) printf("%c",d[i]);
printf(".");
for(;i<len_d;i++) printf("%c",d[i]);
printf("\n");
}
else if(b==len_d)//直接去掉小数点
{
printf("%c",num[]);
for(i=;i<len_d;i++) printf("%c",d[i]);
printf("\n");
}
else//需要添加后缀0
{
printf("%c",num[]);
for(i=;i<len_d;i++) printf("%c",d[i]);
for(i=;i<=b-len_d;i++) printf("");
printf("\n");
}
}
}
}

JNUOJ 1184 - 科学计数法的更多相关文章

  1. csv 中 数值被自动转换成科学计数法 的问题 excel打开后数字用科学计数法显示且低位变0的解决方法

    保存在csv中的 013812345678,前面的0会被去掉,后面是科学计数法显示.保存成 col1,="013812345678" 即可. 注意,分隔符逗号后面直接接“=”等号. ...

  2. 【转】js 中导出excel 较长数字串会变为科学计数法

    [转]js 中导出excel 较长数字串会变成科学计数法 在做项目中,碰到如题的问题.比如要将居民的信息导出到excel中,居民的身份证号码因为长度过长(大于10位),excel会自动的将过长的数字串 ...

  3. C# 科学计数法转换成数字

    /// <summary> /// 判断输入的数是否是科学计数法.如果是的话,就会将其换算成整数并且返回,否则就返回false. /// </summary> /// < ...

  4. C# 中科学计数法转成正常值

    抓取数据的时候碰到科学技术法,查了一些资料,直接贴代码 /// <summary> /// 数字科学计数法处理 /// </summary> /// <param nam ...

  5. PAT 1024. 科学计数法 (20)

    科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位 ...

  6. PHP 如何显示大数字,防止显示为 科学计数法 形式

    PHP 数字超过一定长度时,会自动转换为 科学计数法 的形式,如 1.2345678912346E+16: 如何 避免转换,让它原样展示呢? 不过,可以用PHP函数 number_format() 来 ...

  7. 关于解决读取导入excel某列数字过长的科学计数法格式

    因为 客户 需要导入 虚拟商品的卡号 excel已经是文本形式的单元格格式了 但是 到后台 java代码去获取的时候 仍然是 科学计数法格式 先找到以下资料做参考:http://love-66521. ...

  8. PAT乙级 1024. 科学计数法 (20)

    1024. 科学计数法 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 HOU, Qiming 科学计数法是科学家用来表示很 ...

  9. POI取消科学计数法

    前台输入手机号13777777777,如果是为Double类型接收,就会自动转为科学计数法 找了下,一般是Double转String,方法一般有两种: 1.利用String.format() sale ...

随机推荐

  1. vue时间格式化

    export function formatTime(date, fmt) { if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (date.g ...

  2. iOS Runloop的超级讲解

    这是目前看过的最好的一片中文讲解RunLoop的文章,推荐给大家看一下,原文链接:http://blog.ibireme.com/2015/05/18/runloop/ https://segment ...

  3. 转载nginx+uwsgi+django

    Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.ng ...

  4. head first python 支持网站(可下载所有的代码和示例)

    http://examples.oreilly.com/0636920003434/

  5. Python对文件和文件路径的管理

    1. 使用os.path进行路径和文件管理 1.1 拆分路径 os.path.split                   返回一个二元组,包含文件路径和文件名 os.path.dirname    ...

  6. 与MQ通讯的完整JAVA程序

    该程序实现了发送消息与读取消息的功能,见其中的 send***与get***方法.这只适合于测试,因为环境中的程序还需要对此有稍微的更改,在真实的环境中肯定是在while(true){...} 的无限 ...

  7. php 原生文件下载

    1.整个网页的html界面源码下载: xiazai.php <html> <head> <meta charset ="utf-8"> < ...

  8. liunx trac 插件使用之DateFieldPlugin

    插件GanttCalendarPlugin安装完以后,有一个问题,就是在选择起始与结束时间的时候,为了方便有datepicker功能,如图 需要用到插件DateFieldPlugin,官网链接http ...

  9. echarts - 特殊需求实现代码汇总之【线图】篇

    时间过得好快,刚刚还是7月底,一转眼自己调整(浪费)了大半个月的时间.. 接下来要先总结一下自己之前的知识点,然后清掉自己的待办任务,重新轻装上阵! 继7月24的echarts-柱图配置汇总后,ech ...

  10. 使用Struts时,JSP中如何取得各个会话中的参数值?

    · request <s:property value="#request.req"/> 或者 ${requestScope.req} · session <s: ...