当前位置: 代码迷 >> Java相关 >> 简单的程序,但是调试结果很纠结,求解原因!
  详细解决方案

简单的程序,但是调试结果很纠结,求解原因!

热度:133   发布时间:2010-11-02 12:12:51.0
简单的程序,但是调试结果很纠结,求解原因!
import java.io.*;
import java.util.Arrays;
public class MaxMinClass
{
    static int maxInt(int data[],int n)
    {
        int max=data[0];
        for(int i=0;i<n;i++)
        {
            max=max>data[i]?max:data[i];
        }
        return max;
    }                              //求数组的最大值
   
    static int minInt(int data[],int n)
    {
        int min=data[0];
        for(int i=0;i<n;i++)
        {
            min=min<data[i]?min:data[i];
        }
        return min;
    }                             //求数组的最小值
   
   
    public static void main(String args[])
    {
        System.out.println("请输入十个数字!");
        int data[]=new int[10];
        try{
          for(int i=0;i<10;i++)
        {
            data[i]=(int)System.in.read();
            
        }
        }catch(IOException e){}
        Array.sort(data);
        System.out.println("该数组的最大值为:"+maxInt(data,10));
        System.out.println("该数组的最小值为:"+minInt(data,10));
    }
}

结果并不是最大值最小值,希望大家能告诉我原因 谢谢
搜索更多相关的解决方案: 求解  纠结  结果  调试  

----------------解决方案--------------------------------------------------------
楼主,你先看看,system.in.read是做什么的呀。该方法读入的是一个ascII码,包括空格在内的。
程序代码:
import java.util.Scanner;

public class MaxMinClass {
    static int maxInt(int data[], int n) {
        int max = data[0];
        for (int i = 0; i < n; i++) {
            max = max > data[i] ? max : data[i];
        }
        return max;
    } // 求数组的最大值

    static int minInt(int data[], int n) {
        int min = data[0];
        for (int i = 0; i < n; i++) {
            min = min < data[i] ? min : data[i];
        }
        return min;
    } // 求数组的最小值

    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入十个数字!");
        int data[] = new int[10];
        for (int i = 0; i < 10; i++) {
            data[i] = in.nextInt();
        }
//        Arrays.sort(data);
        System.out.println("该数组的最大值为:" + maxInt(data, 10));
        System.out.println("该数组的最小值为:" + minInt(data, 10));
    }
}


----------------解决方案--------------------------------------------------------
2楼
----------------解决方案--------------------------------------------------------
import java.io.*;
//import java.util.Arrays;
public class MaxMinTest
{
    static int maxInt(int data[],int n)
    {
        int max=data[0];
        for(int i=0;i<n;i++)
        {
            max=max>data[i]?max:data[i];
        }
        return max;
    }                              //求数组的最大值
   
    static int minInt(int data[],int n)
    {
        int min=data[0];
        for(int i=0;i<n;i++)
        {
            min=min<data[i]?min:data[i];
        }
        return min;
    }                             //求数组的最小值
   
   
    public static void main(String args[])
    {
        System.out.println("请输入十个数字!");
        int data[]=new int[10];            
        try{
          for(int i=0;i<10;i++)
        {
            byte b[] = new byte[5];
            System.in.read(b);
            data[i]=Integer.parseInt(new String(b).trim());            
        }
        }catch(IOException e){
            e.printStackTrace();
        }
        //Array.sort(data);
        System.out.println("该数组的最大值为:"+maxInt(data,10));
        System.out.println("该数组的最小值为:"+minInt(data,10));
    }
}

----------------解决方案--------------------------------------------------------
sysou明显是输出,不妨试一试用random()函数随机生成10个数进行测试
----------------解决方案--------------------------------------------------------
回复 5楼 shui1112
你很爱random(),刚才看你一个帖子也是这个阿
----------------解决方案--------------------------------------------------------
看看,跟着你们一起进步!
----------------解决方案--------------------------------------------------------
  相关解决方案