A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我是小黑 初级黑马   /  2013-9-10 22:19  /  1333 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我想利用转换流把,键盘录入的任意五个数字,找到最大最小值,可是没成功,附上代码,跪求指点




package ioe;

import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

import org.xml.sax.InputSource;

/*
* 接受键盘上的任意五个数字,存入数组并且找出最大数和最小数,在打印出来
* //把键盘上输入的数字变为字符数组
* */
public class Array {
        public static void main(String[] args) {
                man();
        }

        public static void man() {
                BufferedReader br = null;
                BufferedWriter bw = null;
                char[] s = new char[6];
                System.out.println("请输入任意五个数字");
                try {
                        int mun = 0;

                        while (mun >= 5) {
                                // 接受读取,键盘上输入的内容,字符
                                br = new BufferedReader(new InputStreamReader(System.in));

                                // 输出流,输出到打印太上
                                bw = new BufferedWriter(new OutputStreamWriter(System.out));
                                // 把键盘上的转换为字符流,并且建立缓冲区

                                // int leng=null;//字符串

                                br.read(s);// 读取每行的字符创,存入s中

                                mun++;
                        }// 循环的括号
                } catch (IOException e) {
                }
                int tem = 0;
                int met = 0;
                for (int i = 0; i < s.length; i++) {
                        if (s[i] < s[++i]) {
                                tem = s[i];
                        } else {
                                met = s[++i];
                        }
                }
                try {
                        bw.wait();
                        bw.wait();
                } catch (InterruptedException e) {

                        e.printStackTrace();
                } finally {
                        try {
                                if (br != null)
                                        br.close();
                        } catch (IOException e) {
                                System.out.println("1");
                        }
                        try {
                                if (bw != null)
                                        bw.close();
                        } catch (IOException e) {
                                System.out.println("2");
                        }
                }
        }
}


评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

3 个回复

倒序浏览
把char数组转化为int数组看看
回复 使用道具 举报
本帖最后由 深知一生短暂 于 2013-9-11 01:55 编辑

额。。。你代码写得很乱。。。。。while循环内还不断新建流对象。。。。。。。。
我根据你的需求重新写了一遍。。。流对象的用法格式希望你熟记!!
代码粘上来怪怪的。。。那些数组in 【i】竟然全没了,详细你还是对比 我的截图吧。。。能下载。。。
import java.io.*;
import java.util.Arrays;
public class fiveNumber {
        public static void main(String[] args)throws IOException {
                // TODO Auto-generated method stub
                BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));  //输入转换流,用BufferedReader包装

                String line=null;
                int[] in=new int[5];
                int i=0;
                while(i<5&&(line=bufr.readLine())!=null)
                {        
                        try{
                        in【i】=Integer.parseInt(line);
                        i++;
                        }
                        catch(NumberFormatException e){                                //这里抛异常你先不用管,假如看不懂        
                                if(!line.matches("[0-9]+"))                                
                                                System.out.println("出现非数字字符");
                                else
                                {
                                        System.out.println("数字太大");
                                }
                        }                                
                }

                System.out.println(Arrays.toString(in));
                System.out.println("最大值:"+max(in));
                System.out.println("最小值:"+min(in));               
        }        
        public static int min(int[] in)   //求最大值函数
        {
                int min=in[0];
                for(int i=1;i<in.length;i++)
                {
                        if(min>in)min=in
【i】;
                }
                return min;
        }        
        public static int max(int[] in)   //求最小值函数
        {
                int max=in[0];
                for(int i=1;i<in.length;i++)
                {
                        if(max<in)max=in
【i】;
                }
                return max;
        }

}


五个数字输入.jpg (44.16 KB, 下载次数: 16)

你的需求

你的需求

运行结果.jpg (45.88 KB, 下载次数: 18)

你的需求的运行结果

你的需求的运行结果

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
楼主,有问题就再问问,如果没有问题就把问题改为已解决吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马