黑马程序员技术交流社区

标题: 基础题 [打印本页]

作者: 杨立考    时间: 2012-9-23 15:52
标题: 基础题
从键盘输入得个100以内的数,求出这三个数中最大值,最小值
作者: 宁振庄    时间: 2012-9-23 16:17
写得不严谨,没有判断输入是不是整数,就提供个大体代码给你。不过基础题不应该自己解决的么?
  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. }
复制代码

作者: 王贵朝    时间: 2012-9-23 16:19
System.out.println("最小值为" + arr[0]);
System.out.println("最大值为" + arr[arr.length-1]);

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

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

作者: 张忠豹    时间: 2012-9-23 19:59
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]);
        }
}
小例子,希望对楼主有帮助
作者: 张小龙    时间: 2012-9-23 20: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]+" ");}}}
楼主加油哦,这个必须自己慢慢学的,基础要打牢才行





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2