输入输出格式练习
来源:互联网 发布:install ubuntu reboot 编辑:程序博客网 时间:2024/06/06 03:33
题目描述
输入
按格式读入一个3位的整数、一个实数、一个字符。
输出
按格式输出一个整数占8位左对齐、一个实数(位数不多于8位,保留一位小数后)占八位右对齐、一个字符,并用|隔开
样例输入
123456.789a
样例输出
123 | 456.8|a
import java.util.Scanner;public class Main { static Scanner in =new Scanner(System.in);public static void main(String[] args) {while(in.hasNext()){String s=in.next(); System.out.print(s.substring(0,3)+" "+"|");int pos=0;char[] c=s.substring(3,s.length()-1).toCharArray();for (int i = 0; i < c.length; i++) {if(c[i]=='.'){pos=i;break;}}for (int i = c.length-1; i>pos-1; i--) {if(c[i]>='5'||c[i]=='&'){c[i-1]=(char) (c[i-1]-'0'+49);if(c[i-1]==':')//即当进位以后为10,根据ASCII码表为“:”对应的值,c[i-1]='&';//设置标志来判断,主要考虑全是9的情况! }}if(c[pos+1]=='&'){//对于1.999类似情况进行处理!c[pos-1]=(char) (c[pos-1]-'0'+49);c[pos+1]='0';}String s1=new String(c);//字符数组转化为字符串//取子串拼接转化为浮点数以便控制8位的格式String s2=s1.substring(0,pos)+"."+s1.charAt(pos+1);double k=Double.parseDouble(s2);System.out.printf("%8.1f",k);System.out.println("|"+s.charAt(s.length()-1));}}}反思:哇,感觉自己每道题总是犯低级错误,这道题我进位变成10 以后我竟然直接认为是‘0’,你以为数学呢,根据ASCII码表,加上1即原来是9以后的ASCII码值为“:”的值啊,真是的,好气哦,幸好自己查了一下表,改出来啦,开心,这道题的坑点在于浮点数部分进位是从最后一位一点一点往前进位的,特别注意1.999这种情况的处理!
阅读全文
0 0
- 输入输出格式练习
- 输入输出格式练习
- 算法提高 输入输出格式练习
- 输入输出练习
- 输入输出练习
- 输入输出练习
- 输入输出练习
- 输入输出练习
- 格式输入输出
- Java 输入输出练习
- 新手入门 acm 输入输出练习
- Java输入输出小练习
- 1093:输入输出练习1
- 输入输出格式函数
- 输入输出的格式控制
- C++ 输入输出格式
- MapReduce的输入输出格式
- Hadoop数据输入输出格式
- 动态链接的整个过程
- Web Storage
- Python中的sorted函数以及operator.itemgetter函数
- VB.NET + EmguCV实现PCA降维
- HTML5的认知与理解
- 输入输出格式练习
- go context专题(三)- context 工作机制和代码分析
- python之函数
- JSP之WEB服务器:Apache与Tomcat的区别 ,几种常见的web/应用服务器
- R语言统计分析
- HDU3836(强联通分量+思维)
- 里程计、推算定位与视觉里程计
- [WebGIS] 地图坐标偏移问题
- css基础(3)