PAT-字符串处理-B 1024 科学计数法 (20分)

题目:

思路:

  由输入获取相关信息,得到指数和科学计数的前部分数字,然后再依据指数的正负分别进行输出

注意点:

  依据转换后的数据进行格式输出

代码:

 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     char h, a[10001] = { 0 };
 8     int i, e;
 9     
10     //
11     scanf("%c%c.%[0-9]E%d", &h, &a[0], a + 1, &e);
12     if (h == '-')printf("-");
13 
14     //指数小于0的情况 
15     if (e < 0)       
16     {
17         printf("0.");
18         e = -e - 1;
19         while (e)
20         {
21             printf("0");
22             e--;
23         }
24         printf("%s", a);
25     }
26     //指数不小于0的情况 
27     else         
28     {
29         for (i = 0;i <= e || a[i] != 0;i++)
30         {
31             if (i == e + 1)
32                 printf(".");
33             printf("%c", a[i] == 0 ? '0' : a[i]);
34         }
35     }
36     return 0;
37 }
View Code

提升知识点: scanf——扫描集

参考——https://blog.csdn.net/tangxinru123/article/details/84975248

原文地址:https://www.cnblogs.com/fangzhiyou/p/12483662.html