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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨立考 中级黑马   /  2012-9-23 15:52  /  1492 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

从键盘输入得个100以内的数,求出这三个数中最大值,最小值

评分

参与人数 1黑马币 +20 收起 理由
admin + 20 参与有奖

查看全部评分

5 个回复

倒序浏览
写得不严谨,没有判断输入是不是整数,就提供个大体代码给你。不过基础题不应该自己解决的么?
  1. import java.io.*;
  2. import java.util.Arrays;

  3. public class Test {
  4.         public static void main(String[] args) {
  5.                 System.out.println("请输入N个整数,以空格隔开");
  6.                 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  7.                 String str = "";
  8.                 try {
  9.                         if((str=br.readLine())!=null){
  10.                                 String []str1 = str.split(" ");
  11.                                 int []arr = new int[str1.length];
  12.                                 for(int i=0;i<str1.length;i++){
  13.                                         arr[i] = Integer.parseInt(str1[i]);
  14.                                 }
  15.                                 Arrays.sort(arr);
  16.                                 System.out.println("最小值为" + arr[0]);
  17.                                 System.out.println("最大值为" + arr[arr.length-1]);
  18.                                 br.close();
  19.                         }
  20.                 } catch (IOException e) {
  21.                         e.printStackTrace();
  22.                 }
  23.                
  24.         }
  25. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
admin + 1 参与有奖

查看全部评分

回复 使用道具 举报
System.out.println("最小值为" + arr[0]);
System.out.println("最大值为" + arr[arr.length-1]);

我觉得这句话是程序中的亮点!!
回复 使用道具 举报
个人思路:比较麻烦,肯定有简单的!望指正
键盘录入-------集合中-------集合变成数组-----在操作数组得到你想要的元素
涉及到的方法:集合的toArray()  Arrays.sort()方法等 当然还有标准的键盘录入:
BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in());

纯属个人思路,没验证能不能实现,请各位还有好的方法,可以分享

评分

参与人数 1技术分 +1 收起 理由
admin + 1 参与有奖

查看全部评分

回复 使用道具 举报
package com.itheima.second;

import java.util.Scanner;

public class ScannerDemo {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                String num = sc.nextLine();
               
                //在此假设是以空格分隔的三个数字
                String[] arr = num.split(" ");

                int max = getMax(arr);
                int min = getMin(arr);
               
                System.out.println("最大数是:max="+max+",最下的数是:min="+min);
        }

        //求最大数
        public static int getMax(String[] arr)
        {
                int max = 0;//初始化为数组中的任意一个角标。
                for(int x=1; x<arr.length; x++)
                {
                        if(Integer.parseInt(arr[x])>Integer.parseInt(arr[max]))
                        {
                                max = x;
                        }
                }
                return Integer.parseInt(arr[max]);
        }
       
        //求最小数
        private static int getMin(String[] num) {
                int min = 0;
                for(int x=1; x<num.length; x++)
                {
                        if(Integer.parseInt(num[min])>Integer.parseInt(num[x]))
                        {
                                min = x;
                        }
                }
                return Integer.parseInt(num[min]);
        }
}
小例子,希望对楼主有帮助

评分

参与人数 1技术分 +1 收起 理由
admin + 1 恭喜恭喜,25分了

查看全部评分

回复 使用道具 举报
二楼没说中,
一楼最大的亮点在于 Arrays.sort(arr);
给楼主一个原生态的:
public class Arrays {
public static void main(String[] args){
  Scanner scanner =new Scanner(System.in);
  int[] arrays=new int[3];
  for(int x=0;x<3;x++){           //循环接收用户输入的数字
   arrays[x]=scanner.nextInt();}
  int temp;
  for(int x=0;x<3;x++){           //冒泡排序 大家都很清楚吧
   for(int y=0;y<arrays.length-x-1;y++){
    if(arrays[y]>arrays[y+1]){
     temp=arrays[y];
     arrays[y]=arrays[y+1];
     arrays[y+1]=temp;}}}
  for(int x=0;x<arrays.length;x++){         //最后输出
   System.out.print(arrays[x]+" ");}}}
楼主加油哦,这个必须自己慢慢学的,基础要打牢才行

评分

参与人数 1技术分 +1 收起 理由
admin + 1 参与有奖

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马