zoukankan      html  css  js  c++  java
  • 用户随机输入一组整数求出最大值

    1.程序要求:

    用户随机输入一组整数,求出这组数当中的最大值。当用户出现非法输入的时候,要能够检测出来。用户输入的数字的个数不定,几个都可以。

    2.程序设计思想:

    要想实现输入的数字个数不定,可以采用字符串来实现。即把用户输入的字符存放到一个字符串里面,因为用户在输入数字的时候,用空格隔开,我们就可以通过空格来获取各个数字。在判断每个数字是否符合要求,如果符合,就把它转化为数字然后存储到一个数组当中去,如果不符合,就提示用户有非法输入。

    3.源代码:

    package MathTest1;
    import java.util.Scanner;
    import java.util.ArrayList;
    class FindIntMax {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
        
            Major1 m = new Major1();
            m.Input();
            m.out();
            m.InputToIntArr();
            
        }    
    }
    
    class Major1
    {
        private String inputStr;//获取用户的输入表达式
        public void Input()
        {
            System.out.println("输入一串整数");
            Scanner sc = new Scanner(System.in);
            inputStr = sc.nextLine();
        }
        public void out()
        {
            System.out.println(inputStr + "长度" +inputStr.length());
        }
        //检查输入的字符串是否符合程序要求 返回字符串中数字的个数
        public int checkInputStr()
        {
            //记录数字字符的个数
            int count = 0;
            //记录每个字串开始时的位置
            int index = 0;
            
            
            
            while(index < inputStr.length())
            {
                //定位下次开始获取子串的位置
                while(String.valueOf(inputStr.charAt(index)).equals(" "))
                {
                    index++;
                    if(index >= inputStr.length())
                    {
                        break;
                    }
                }
                
                String str = "";
                //得到两个空格之间的子串
                while(!(String.valueOf(inputStr.charAt(index)).equals(" ")))
                {
                    str = str+String.valueOf(inputStr.charAt(index));
                    index++;
                    if(index >= inputStr.length())
                    {
                        break;
                    }
                }
                if(checkSubStr(str))
                {
                    count++;
                }
                else
                {
                    return -1;
                }
                
                
            }
            return count;
        }
        
        //检查子串是否符合要求
        public boolean checkSubStr(String str1)
        {
            boolean f = true;
            
            //处理单独的-
            if(str1.equals("-"))
            {
                f = false;
            }
            String substr = String.valueOf(str1.charAt(0));
            //负数的第一个字符可能是-
            if(substr.equals("-")||substr.equals("1")||substr.equals("2")||substr.equals("3")||
                substr.equals("4")||substr.equals("5")||substr.equals("6")||substr.equals("7")||
                substr.equals("8")||substr.equals("9")||substr.equals("0"))
            {
                for(int j = 1;j < str1.length();j++)
                {
                    substr = String.valueOf(str1.charAt(j));
                    if(!(substr.equals("1")||substr.equals("2")||substr.equals("3")||
                            substr.equals("4")||substr.equals("5")||substr.equals("6")||
                            substr.equals("7")||
                            substr.equals("8")||substr.equals("9")||substr.equals("0")))
                    {
                        f = false;
                        break;
                    }
                }
                
            }
            else
            {
                f = false;
            }
            return f;
        }
        
        //
        public int findMax(int[] list)
        {
            int maxNum = list[0];
            for(int i = 0;i < list.length;i++)
            {
                if(list[i] > maxNum)
                {
                    maxNum = list[i];
                }
            }
            return maxNum;
        }
        
        public void InputToIntArr()
        {
            if(checkInputStr() == -1)
            {
                System.out.println("您输入了非数字字符!");
            }
            else
            {
                int k = checkInputStr();
                int[] list = new int[k];
                int index = 0;
                int count = 0;
                
                
                while(index < inputStr.length())
                {
                    //定位下次开始获取子串的位置
                    while(String.valueOf(inputStr.charAt(index)).equals(" "))
                    {
                        index++;
                        if(index >= inputStr.length())
                        {
                            break;
                        }
                    }
                    
                    String str = "";
                    //得到两个空格之间的子串
                    while(!String.valueOf(inputStr.charAt(index)).equals(" "))
                    {
                        str = str+String.valueOf(inputStr.charAt(index));
                        index++;
                        if(index >= inputStr.length())
                        {
                            break;
                        }
                    }
                    
                    //子串已经全部是数字串可以赋值
                    list[count] = Integer.parseInt(str);
                    count++;
    
                    
                }
                System.out.println(findMax(list));
            }
        }
    }
    
        

    4.测试用例:

    5个正整数

    5个负整数

    10个正整数

    7个负整数

    出现小数

    出现非数字字符

  • 相关阅读:
    leetcode 92. 反转链表 II
    leetcode记录1 快速排序
    Jmeter入门总结
    Jmeter 元件作用域、集合点、检查点
    Jmeter 实例
    badboy脚本开发
    Jmeter 常用功能介绍
    简单的自创线程池
    多线程
    IO多路复用
  • 原文地址:https://www.cnblogs.com/1102whw/p/5301955.html
Copyright © 2011-2022 走看看