java编程题集: 随机输入10个数,找出最大的一个数,并打印出来。请问我这样写对吗?还有简单的方法吗?

public class Qoell
{
public static void main (String[]args)
{
int a1=0;
int a2=1;
int a3=2;
int a4=3;
int a5=4;
int a6=5;
int a7=6;
int a8=7;
int a9=8;
int a10=9;
if(a1>a2)
if(a1>a3)if(a1>a4)if(a1>a5)
if(a1>a6)if(a1>a7)if(a1>a8)
if(a1>a9)if(a1>a10){
System.out.println(a1);
}
if(a2>a1)
if(a2>a3)if(a2>a4)if(a2>a5)
if(a2>a6)if(a2>a7)if(a2>a8)
if(a2>a9)if(a2>a10){
System.out.println(a2);
}
if(a3>a1)
if(a3>a2)if(a3>a4)if(a3>a5)
if(a3>a6)if(a3>a7)if(a3>a8)
if(a3>a9)if(a3>a10){
System.out.println(a3);
}
if(a4>a1)
if(a4>a2)if(a4>a3)if(a4>a5)
if(a4>a6)if(a4>a7)if(a4>a8)
if(a4>a9)if(a4>a10){
System.out.println(a4);
}
if(a5>a1)
if(a5>a2)if(a5>a3)if(a5>a4)
if(a5>a6)if(a5>a7)if(a5>a8)
if(a5>a9)if(a5>a10){
System.out.println(a5);
}
if(a6>a1)
if(a6>a2)if(a6>a3)if(a6>a4)
if(a6>a5)if(a6>a7)if(a6>a8)
if(a6>a9)if(a6>a10){
System.out.println(a6);
}
if(a7>a1)
if(a7>a2)if(a7>a3)if(a7>a4)
if(a7>a5)if(a7>a6)if(a7>a8)
if(a7>a9)if(a7>a10){
System.out.println(a7);
}
if(a8>a1)
if(a8>a2)if(a8>a3)if(a8>a4)
if(a8>a5)if(a8>a6)if(a8>a7)
if(a8>a9)if(a8>a10){
System.out.println(a8);
}
if(a9>a1)
if(a9>a2)if(a9>a3)if(a9>a4)
if(a9>a5)if(a9>a6)if(a9>a7)
if(a9>a8)if(a9>a10){
System.out.println(a9);
}
if(a10>a1)
if(a10>a2)if(a10>a3)if(a10>a4)
if(a10>a5)if(a10>a6)if(a10>a7)
if(a10>a8)if(a10>a9){
System.out.println(a10);
}

}
}

import java.util.Random;
import java.util.Scanner;

public class MaxNumber {

private static Scanner input = new Scanner(System.in); // 实例控制台输入类
public static void main(String[] args) {
/*
* 第一步, 按照题目要求 , 我们需要用户输入 10 个数字
*/
int[] numberArray = new int[10]; // 我们先定义一个 可以装 10 个数字的数组
int choose = chooseMode(); // 我加了一个选择模式的函数
if (choose == 1) { // 用户手工输入
for (int i = 0; i < numberArray.length; i++) { // 循环输入
System.out.print("请定义第 '" + (i + 1) + "' 个数字:"); // 输出控制台提示
numberArray[i] = input.nextInt(); // 要求输入, 并存储到数组变量里
}
} else { // 计算机随机生成
Random random = new Random(); // 随机数类
int tempNumber = 0 ; // 临时变量
for (int i = 0; i < numberArray.length; i++) { // 计算机生成
tempNumber = random.nextInt(100) + 1; // 随机生成 1 - 100 的数
System.out.println("计算机生成的第 '" + (i + 1) + "' 个数字是:" + tempNumber);
numberArray[i] = tempNumber; // 赋值
}
}
/*
* 第二步 , 找这 10 个数当中 , 最大的数.
*/
int maxNumber = 0; // 定义一个变量接收最大的数
for (int i = 0; i < numberArray.length; i++) { // 循环寻找
/*
* 循环比对, 一个接一个的, 如果 '当前数' , 比我们已经记录的 '最大数' 还大, 那我们就把当前数 赋给 最大数
*/
if (numberArray[i] > maxNumber) {
maxNumber = numberArray[i];
}
}
System.out.println("其中最大的数是:" + maxNumber); // 输出结果
}

/**
* 选择模式方法
* @return 返回选择的模式的编号
*/
public static int chooseMode() {
System.out.println("------------ 选择模式 ------------");
System.out.println("\t1. 用户输入十个数字");
System.out.println("\t2. 计算机随机产生十个数字");
System.out.print("请选择:");
return input.nextInt(); // 输入, 返回
}

/*
* 其中包函的知识有: 控制台输入, 输出 , 数组 , 循环 , if 判断语句
*/
}

最后:
希望能帮到你,如果有什么问题可以 Hi 我,
看到楼主花了怎么多耐心,写了怎么多判断,也可以见得楼主确实用心了,
只是没找到方法。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-29
我有个比你好一点的办法。。。
你这个陷入误区了。。你是为了得到最大的数对吧。。你就把10个数字两两比较
int max()
{
int[] a = new int[10];//假设这是存储这几个数的地方
for(int i =1 ;i<=9;i++)
{
if(a[i]>a[0])
a[0] = a[i];//a[0] 是存储最大值的位置
}
return a[0];
}//基本实现是这样子至于参数传递 自己喜欢怎么传就怎么传吧
第2个回答  2011-01-29
直接给代码了
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
int[] num=new int[10];
for(int i=0;i<num.length;i++){
num[i]=input.nextInt();
}
int temp=0;
for (int i = 0; i < num.length; i++) {
if(temp<=num[i])
temp=num[i];
}

System.out.println("最大的数为"+temp);
}
或者使用Arrays的静态方法sort对数组进行排序。
static void sort(int[] a)
对指定的 int 型数组按数字升序进行排序。
更多的信息,学着查java的API文档,也就是帮助文档
第3个回答  2011-01-29
如果你没学循环这个可以不怪你,如果学了循环还写出这种代码,你可以毕业了
public static void main(String[] args) {
int[] nums = {3, 4, 5,6,4,1,54,23,64,5,10};
int max = 0;
for(int i = 0; i < nums.length; i++) {
if(nums[i] > max) max = nums[i];
}
System.out.println(max);
}
第4个回答  2011-01-30
最简单的办法就用java集合中 Set接口中treeSet类 使用该类中的方法可以直接得到最大值
相似回答