1024 科学计数法

一.问题:

 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][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

二.思路:

三.代码实现:

#include<stdio.h>
#include<string.h>
#include<math.h>//将指数字符串zhishu部分转换为int数字
int switch_num(char*num_str)
{int len_s = strlen(num_str);int e = 0;int move = 0;for(int i = len_s-1;i > -1;i--,e++){move = move + (num_str[i]-'0')*pow(10,e);}return move;
}int main()
{//定义需要的变量char science_num[10001];//输入的以科学计数法表示的实数char sign1;//第一个正负符号char sign2;//第二个正负符号char num[10001]={'\0'};//科学计数法表示的实数中的除了指数部分的数字char zhishu[10001]={'\0'};//科学计数法表示的实数中的指数部分的数字//输入数据scanf("%s",science_num);//提取每个变量的值//1.提取第一个正负符号sign1sign1 = science_num[0];int len1 = strlen(science_num);//以科学计数法表示的实数字符串长度int index = 0;//记录字符E出现的下标for(int i = 0;science_num[i] != '\0';i++){if(science_num[i] == 'E'){index = i;//2.提取第二个正负符号sign2sign2 = science_num[i+1];//3.科学计数法表示的实数中的指数部分zhishu的数字字符串for(int j = i+2,m=0;science_num[j] != '\0';j++){zhishu[m] = science_num[j];m++;}break;}}for(int i = 1,t=0;i < index;i++){//4.提取科学计数法表示的实数中的除了指数部分的数字num字符串if(science_num[i] >= '0'&&science_num[i] <= '9'){num[t] = science_num[i];t++;}}//输出转换后的普通数字表示法的数//1.输出第一个符号if(sign1 == '-'){putchar('-');}//2.输出剩余部分//2.1先获取指数绝对值,即小数点移动步数和num字符串长度len2int move = switch_num(zhishu);int len2 = strlen(num);if(move == 0)//原样输出,小数点不移动{printf("%c",num[0]);putchar('.');for(int k = 1;k < len2;k++){putchar(num[k]);}}else   //move > 0的情况{if(sign2=='+')//小数点右移的情况{if(move < len2-1)//小数点移动步数没有超过小数部分的情况{for(int k = 0;k <= move;k++){putchar(num[k]);}putchar('.');for(int k = move+1;k < len2;k++){putchar(num[k]);}}else{printf("%s",num);for(int k = 0;k < (move-len2+1);k++){putchar('0');}}}else  //小数点左移的情况{printf("0.");for(int k = 0;k < (move-1);k++){putchar('0');}printf("%s",num);}}putchar('\n');return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/125249.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为云云耀云服务器L实例评测|Uniapp开发部署茶叶商城小程序、H5

1、华为云云耀云服务器L实例评测&#xff5c;Uniapp开发茶叶商城小程序、H5 华为云耀云服务器L实例是新一代开箱即用、面向中小企业和开发者打造的全新轻量应用云服务器。多种产品规格&#xff0c;满足您对成本、性能及技术创新的诉求。云耀云服务器L实例提供丰富严选的应用镜像…

lv7 嵌入式开发-网络编程开发 10 TCP协议是如何实现可靠传输的

目录 1 TCP 最主要的特点 1.1 特点 1.2 面向流的概念 1.3 Socket 有多种不同的意思 2 TCP是如何实现可靠传输的&#xff1f; 3 TCP报文段的首部格式 4 作业 1 TCP 最主要的特点 TCP 是面向连接的运输层协议&#xff0c;在无连接的、不可靠的 IP 网络服务基础之上提供可…

微信管理系统

在这个全民微信的时代&#xff0c;微信已成为生活和工作中不可缺少的工具&#xff0c;为了方便&#xff0c;大部分人都不会只有一个微信&#xff0c;很多企业老板和创业者都已经开始用微信管理系统来提升自身的业务效率和客户满意度。 微信管理系统适用哪些行业呢&#xff1f; …

MyBatisPlus(十一)判空查询:in

说明 判空查询&#xff0c;对应SQL语句中的 in 语句&#xff0c;查询参数包含在入参列表之内的数据。 in Testvoid inNonEmptyList() {// 非空列表&#xff0c;作为参数List<Integer> ages Stream.of(18, 20, 22).collect(Collectors.toList());in(ages);}Testvoid in…

python修改unittestreport中的用例条数

背景: 自动化框架中使用yaml文件作为数据配置&#xff0c;使用ddt作为数据驱动来运行测试用例&#xff0c;由于测试用例都是基于场景去编写&#xff0c;目前都是一个测试类算是一条测试用例&#xff0c;但基于测试报告里面一个类运行的测试方法有多个&#xff0c;因此统计的测试…

堆--数组中第K大元素

如果对于堆不是太认识&#xff0c;请点击&#xff1a;堆的初步认识-CSDN博客 解题思路&#xff1a; /*** <h3>求数组中第 K 大的元素</h3>* <p>* 解体思路* <ol>* 1.向小顶堆放入前k个元素* 2.剩余元素* 若 < 堆顶元素, 则略过* …

Netty 4.1.98.Final 发布

Netty 4.1.98 稳定版已发布。Netty 是一个异步事件驱动的网络应用框架&#xff0c;主要用于可维护的高性能协议服务器和客户端的快速开发。 此版本还原了上一版本中所做的更改&#xff0c;这些更改导致 HTTP header 验证比所需的更严格 (#13615)。除此之外&#xff0c;当使用 n…

MySQL到TiDB:Hive Metastore横向扩展之路

作者&#xff1a;vivo 互联网大数据团队 - Wang Zhiwen 本文介绍了vivo在大数据元数据服务横向扩展道路上的探索历程&#xff0c;由实际面临的问题出发&#xff0c;对当前主流的横向扩展方案进行了调研及对比测试&#xff0c;通过多方面对比数据择优选择TiDB方案。其次分享了整…

Win11 安装 Vim

安装包&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1Ru7HhTSotz9mteHug-Yhpw?pwd6666 提取码&#xff1a;6666 双击安装包&#xff0c;一直下一步。 配置环境变量&#xff1a; 先配置系统变量中的path&#xff1a; 接着配置用户变量&#xff1a; 在 cmd 中输入…

安装cad显示找不到msvcp140.dll怎么解决?靠谱的msvcp140.dll丢失的解决方法分享

在安装 CAD 软件时&#xff0c;出现找不到 msvcp140.dll 的困扰&#xff0c;让许多用户感到十分沮丧。msvcp140.dll 是 Visual C Redistributable for Visual Studio 2015 的运行库文件&#xff0c;对于 CAD 软件的正常运行至关重要。因此&#xff0c;解决这个问题是当务之急。…

【Python入门】元组与字符串

文章目录 前言一、元组&#xff08;Tuples&#xff09;1.1 元组的定义1.2 元组的特性&#xff1a;1.3 示例 1: 创建和访问元组1.4 示例 2: 元组的不可变性1.5 元组的常用函数操作&#xff1a;len() - 返回元组中元素的个数。index() - 查找指定元素在元组中的索引。count() - 统…

Java项目:高仿12306

github地址&#xff1a;nageoffer/12306: &#x1f525; 官方推荐 &#x1f525; 大学春招、秋招、应届项目&#xff0c;SpringBoot3 Java17 SpringCloud Alibaba Vue3 等技术架构&#xff0c;完成高仿铁路 12306 用户 抢票 订单 支付服务&#xff0c;帮助学生主打就业的…