简单的程序,但是调试结果很纠结,求解原因!
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));
}
}
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(),刚才看你一个帖子也是这个阿 ----------------解决方案--------------------------------------------------------
看看,跟着你们一起进步!
----------------解决方案--------------------------------------------------------