码迷,mamicode.com
首页 > 其他好文 > 详细

PAT1024科学计数法 (20)

时间:2015-01-20 13:39:55      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:

科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位,该数字及其指数部分的正负号即使对正数也必定明确给出。

现以科学计数法的格式给出实数A,请编写程序按普通数字表示法输出A,并保证所有有效位都被保留。

输入格式:

每个输入包含1个测试用例,即一个以科学计数法表示的实数A。该数字的存储长度不超过9999字节,且其指数的绝对值不超过9999。

输出格式:

对每个测试用例,在一行中按普通数字表示法输出A,并保证所有有效位都被保留,包括末尾的0。

输入样例1:

+1.23400E-03

输出样例1:

0.00123400

输入样例2:

-1.2E+10

输出样例2:

-12000000000

思路:画流程图有助于理解
技术分享
 1 #include<stdio.h> 
 2 char str[10010];
 3 int main(int argc, char** argv) {
 4     scanf("%s",str);
 5     bool flag1=true,flag2=true;
 6     if(str[0]==-)
 7         flag1=false;
 8     int i;
 9     for( i=0;str[i]!=E;i++)
10         ;
11     if(str[++i]==-)
12     {
13         flag2=false;
14     }
15     int move=0;
16     for(i=i+1;str[i]!=\0;i++)
17     {
18         int temp=str[i]-48;
19         move=move*10+temp;
20     }
21     if(!flag1)
22        printf("-");
23     if(!flag2)
24     {
25         if(move!=0)
26         {
27             move--;
28             printf("0.");
29         }
30         while(move--)
31            printf("0");
32         for(i=0;str[i]!=\0;i++)
33         {
34             if(str[i]==E)
35                break;
36             if(str[i]==+||str[i]==-||str[i]==.)
37                continue;
38             printf("%c",str[i]);
39         }
40     }
41     else
42     {
43         printf("%c",str[1]);
44         i=3;
45         while(move--)
46         {
47             
48             if(str[i]!=E)
49                printf("%c",str[i++]);
50             else
51             {
52                 printf("0");
53             }
54         }
55         //进行点的处理
56         if(str[i]!=E)
57           printf("."); 
58         while(str[i]!=E)
59         {
60             printf("%c",str[i++]);
61         }
62     }
63         
64         
65     return 0;
66 }
View Code

 

PAT1024科学计数法 (20)

标签:

原文地址:http://www.cnblogs.com/GoFly/p/4235756.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!