java写:在100中的10个随机数中找出最大值和最小值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java写:在100中的10个随机数中找出最大值和最小值相关的知识,希望对你有一定的参考价值。

import java.util.Random; public class Lanxi public static void main(String[] args) int[] num = new int[10]; int sum = 0; double avg = 0; long amass = 1L; int max = 0; int min = num[0]; Random r = new Random(); for (int i = 0; i < num.length; i++) num[i] = r.nextInt(100); System.out.println("数列中10个元素为:"); for (int i = 0; i < num.length; i++) System.out.print(num[i]+"\t"); for (int i = 0; i < num.length; i++) sum += num[i]; amass *= num[i]; if (max < num[i]) max = num[i]; else if (min > num[i]) min = num[i]; avg = sum / 10; System.out.println("\n数组元素和为:"+sum+"\t积为:"+amass+"\t平均数为:"+avg+"\t最大数为:"+max+"\t最小数为:"+min); 为什么输出不了最小值,一直为0,就在这个上面改 不用重新写

1、思路

首先利用随机数函数生成100个随机数;

然后在这100个数中,通过比较,找出最大数和最小数。

2、代码如下

import java.util.Random; 
public class Lanxi  public static void main(String[] args) 
 
int max = 0; 
int min = num[0]; 
Random r = new Random();
 for (int i = 0; i < num.length; i++)  num[i] = r.nextInt(100); 
for (int i = 0; i < num.length; i++)  sum += num[i]; amass *= num[i];  if (max < num[i])  max = num[i]; 
else if (min > num[i])  min = num[i];       avg = sum / 10; 
System.out.println("\\n100随机数最大数为:"+max+"\\t最小数为:"+min);  
参考技术A 其实只要你的数组中的数是在0到100之间的;那么你的最小值就永远是0;为什么呢?min=num[0];但是此时数组中没有赋值;那十个数初始时都是0;所以呢min 也就是0了;在后面不论你怎么比较他都是0;以上是这个程序出错原因;说到这我想你应该会修改了;其次要说的是,对于这样一个小程序;不需要数组

求采纳本回答被提问者采纳
参考技术B import java.util.Random;

public class Demo01
public static void main(String[] args)
int arr[] = new int[10];
Random r = new Random();
for (int i = 1; i < 10; i++)
arr[i] = r.nextInt(100);// 得到10个100以内的整数

for (int i = 0; i < arr.length; i++)
System.out.println(i + "=" + arr[i]);

int a = arr[0];
for (int i = 0; i < arr.length; i++)
if (arr[i] > a)
a = arr[i];


System.out.println("这十个数中最大的为" + a);





----------------------------------------------------------------
看到你采纳的第一个人说的不用数组然后我就修改了一下方法不用数组的方式只是我觉得用数组您能更好的看到

import java.util.Random;

public class Demo01
public static void main(String[] args)
int a = 0;
int b = 0;
Random r = new Random();
for (int i = 1; i < 10; i++)
a = r.nextInt(100);
if (a > b)
b = a;


System.out.println(b);

java中如何找出一串时间序列中的最大,最小值

比如从文本文件中提取出来String类型的一列时间:
13:25:59
13:26:00
13:26:01
13:26:02
13:26:03
13:26:04
13:26:06
如何造出其中的最大、最小值啊?望指点!

java.lang.String.compareTo(String)
public int compareTo(String anotherString)按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象在参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只有在方法 equals(Object) 返回 true 时才返回 0。
这是字典排序的定义。如果这两个字符串不同,则要么它们在某个索引处具有不同的字符,该索引对二者均为有效索引,要么它们的长度不同,或者同时具备上述两种情况。如果它们在一个或多个索引位置上具有不同的字符,假设 k 是这类索引的最小值;则按照 < 运算符确定的那个字符串在位置 k 上具有较小的值,其字典顺序在其他字符串之前。这种情况下,compareTo 返回这两个字符串在位置 k 处的两个不同的 char 值,即值:

this.charAt(k)-anotherString.charAt(k)
如果它们没有不同的索引位置,则较短字符串在字典顺序上位于较长字符串的前面。这种情况下,compareTo 返回这两个字符串长度的不同,即值:
this.length()-anotherString.length()

指定者:
接口 Comparable<String> 中的 compareTo
参数:
anotherString - 要比较的 String。
返回:
如果参数字符串等于此字符串,则返回 0 值;如果按字典顺序此字符串小于字符串参数,则返回一个小于 0 的值;如果按字典顺序此字符串大于字符串参数,则返回一个大于 0 的值。

解决了比较大小的问题,最大值和最小值一个循环搞出来主可以了。
参考技术A //原理就是把字符串转化为date,然后就可以用date的before来比较大小,或者直接用getTime//()转换为数字来比较大小。至于数组的最大,最小,直接用冒泡或者其他的算法都可以 .
String dateStr1 = "23:12:52";
String dateStr2 = "23:12:53";

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("hh:mm:ss");
Long date1 = simpleDateFormat.parse(dateStr1).getTime();
Long date2 = simpleDateFormat.parse(dateStr2).getTime();
System.out.print("the max:" + ( date1>date1?dateStr1:dateStr2 ));

本回答被提问者采纳
参考技术B 先使用simpledateformat全部格式化成时间,根据date.gettime()比较数值的大小 参考技术C 方法一,将这些String全部转换成Date全部存储到一个列表,通过快速比较算法判断出最大值和最小值;或用冒泡排序升序,第0个就是最小值,最后一个就是最大值,时间比较方法用compareTo。
方法二,将String的时、分、秒分割,全部转换成毫秒,毫秒=秒*1000+分*60*1000+时*60*60*1000,将这些毫秒存储到一个列表,使用方法一的快速比较或冒泡排序取出最大值和最小值。
参考技术D 可以这样:package test;
public class Test
public static void main(String[] args)
int[] nums = 2, 1, 4, 100, 88, 66, 123, 5, 74, 69 ;
for (int i = 0; i <= nums.length - 1; i++)
for (int j = i + 1; j <= nums.length - 1; j++)
if (nums[i] > nums[j])
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;



System.out.println("最小值为:" + nums[0] + " , 最大值为:"
+ nums[nums.length - 1]);

以上是关于java写:在100中的10个随机数中找出最大值和最小值的主要内容,如果未能解决你的问题,请参考以下文章

怎么用for循环计算数组最大值?代码怎么写

怎么用for循环计算数组最大值?代码怎么写

JAVA怎样随机生成10W个数字, 要求: 10W个数字总等于50W而且每个数字最小1最大100, 求代码及思路

自动生成10个整数(1~100),求出生成数组中的最大值和最小值,以及显示排序后的数据。运行效果如图所示

Python 随机产生[0,100]以内的随机数,找到最大值和最小值并交换位置

在excel中如何在数据中找出最大或最小的10个数?