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

 #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. HybridApp启动引导页的实现

    有一种帅叫做长话短说,@孙红雷,--这可以叫做“短帅”吗,^_^ 首先说下思路,既然是Hybrid APP, 那就是可以用html的方式实现,启动引导页比较常见的展示方式是滑动,那么我们就可以使用图片 ...

  2. laravel 5.3升级5.4

    1)修改 composer 配置文件 composer.json 1.如果你用了 laravel-admin,larvel-admin 版本改 1.4.x-dev 2.laravel 版本改 5.4. ...

  3. 基于端口的弱口令检测工具--iscan

    亲手打造了一款弱口令检测工具,用Python编写,主要可以用于内网渗透.弱口令检测等方面,目前集成了常见端口服务,包含 系统弱口令:ftp.ssh.telnet.ipc$ 数据库弱口令:mssql.m ...

  4. SharePoint如何模拟用户

    try { SPSecurity.RunWithElevatedPrivileges(delegate() //用此方法模拟管理员账户运行此事件处理程序 { SPWeb web = SPContext ...

  5. Kafka producer拦截器(interceptor)

    Producer拦截器(interceptor)是个相当新的功能,它和consumer端interceptor是在Kafka 0.10版本被引入的,主要用于实现clients端的定制化控制逻辑. 对于 ...

  6. linux系统开机自启程序-需要-root用户 -启动 -

    #!/bin/bashsh /home/hwjc/RSA/release2017-02-23/release2017-02-23/install.shsh /etc/init.d/mqtt.shifc ...

  7. 《转》python学习(12)-列表解析

    转自 http://www.cnblogs.com/BeginMan/p/3164937.html 一.列表解析 列表解析来自函数式编程语言(haskell),语法如下: [expr for iter ...

  8. intellij2016.03激活

    激活的时候采用server的方式 :http://jetbrains.tech

  9. jQuery队列(三)

    看了一下队列剩下的几个方法,在没有应用场景的情况下,对它所做的一些处理不能明白.后续希望可以通过动画部分代码的阅读能搞清楚这些处理的意义.jQuery.fn.extend({ // 推迟队列中函数的执 ...

  10. jQuery缓存机制(三)

    缓存机制提供的入口有: $.data([key],[value]) // 存取数据 $.hasData(elem) // 是否有数据 $.removeData([key]) // 删除数据 $.acc ...