java题目:将1到100中的100个自然数随机的放到一个数组,从中获取重复次数最多并且最大的数,显示出来。

这里有题目和答案 给具体解释一下,尤其是一行后面有问号标注的地方 两个版本,或者给我做一个更好理解的。着重解释一下“从中获取重复次数最多并且最大的数”是怎么实现的import java.util.Random;public class Test { public static void main(String[] args) { // TODO Auto-generated method stub int [] figures = new int [100]; int [] times = new int [100]; int time = 0; int figure = 0; Random random = new Random(); for(int i =0;i<figures.length;i++){ figures[i] = random.nextInt(100); times[figures[i]] ++; ———————— ???这个式子的运算过程 还有它是什么意思 System.out.print(figures[i] + ","); } for(int i=0;itime){ ——————————??? time = times[i]; figure = i; } } System.out.println(); System.out.println("重复最多的数字是" + figure); System.out.println("重复次数是" + time); }}************************************************************************************************************public class TestRandom { public static void main(String[] args) { int[] a = new int[100]; for(int i=1;i<=100;i++){ int temp = (int)(Math.random()()*100)+1; ???为什么要加1 System.out.print(temp+" "); a[temp-1]++; ——————————————— ???这个式子的运算过程 还有它是什么意思 } System.out.println(); int t = 0; int k = 0; for(int i = 0;i<100;i++){>=t){ —————————————————— ??? t = a[i]; k=i; } } System.out.println("出现最大且最多的数字是"+(k+1)); System.out.println("它出现了"+t+"次"); }}

int size = 10;

int[] figures = new int[size];

int[] times = new int[size];

Random random = new Random();

for (int i = 0; i < figures.length; i++) {

figures[i] = random.nextInt(size) + 1;//产生1-size中的数字

System.out.print(figures[i] + ",");

}

System.out.println("\n升序排序后");

Arrays.sort(figures);

int num = figures[0];//取出升序后的第一个元素与之后的元素进行比较

System.out.print(figures[0] + ",");

int cishu = 1;

for (int i = 1; i < figures.length; i++) {

System.out.print(figures[i] + ",");

if (num == figures[i]) {

cishu++;

times[figures[i] - 1] = cishu;//设置该元素的下表和出现的次数

} else {

cishu = 1;

}

num = figures[i];


}

System.out.println();

cishu = times[0];

num = 0;

for (int i = 1; i < times.length; i++) {

if (cishu <= times[i]) {

cishu = times[i];

num = i;

}


}

System.out.println((num + 1) + "出现次数最多" + cishu + "次");


思路:

    循环size个1到size之间(包括1和size)的数字保存在数组中

    使用Arrays.sort()函数 使数组升序排序

    依次比较大小,并将数字作为下标(数字-1),出现次数作为值存到另一数组中,

    将另一数组中最大值(次数)输出,下标+1即为数字

描述的不好,请见谅

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-27
第一个程序的思路大概是这样:设置两个数组,第一个数组用来存放生成的随机数,第二个数组用来存放每个随机数出现的次数。
figures[i] = random.nextInt(100);//生成随机数
times[figures[i]] ++; //增加随机数出现的次数。
这里实际上利用了数组的长度,假设100个随机数都是50,代码就成了
figures[i] = 50;
(times[figures[i]] = times[50])
times[50]++;
到最后结果是figures数组里的数字全是50,times数组里第50个(实际上是第51个,数组下标从0开始)数的值为100,也就是说50这个数字出现了100次

看的头晕死了,代码还有问题本回答被提问者和网友采纳
第2个回答  2013-11-26
头好疼啊!楼主这是什么排版!

java题目:将1到100中的100个自然数随机的放到一个数组,从中获取重复...
System.out.println((num + 1) + "出现次数最多" + cishu + "次");思路:循环size个1到size之间(包括1和size)的数字保存在数组中 使用Arrays.sort()函数 使数组升序排序 依次比较大小,并将数字作为下标(数字-1),出现次数作为值存到另一数组中,将另一数组中最大值(次数)输出,下标+1...

java:将1到100中的100个自然数随机的放到一个数组,从中获取重复次数最...
重复数目最多51出现了3次 重复数目最多50出现了3次 重复数目最多69出现了3次 重复数目最多90出现了3次 重复数目最多99出现了3次 重复最多的最大值:99 代码 import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;pub...

用JAVA编程计算1到100的平方直,结果保存到一个数组中这个代码怎么写
{ int arr[] = new int[i+1];int b = i*i;arr[i]=b;System.out.println(arr[i]);}

Java中,定义一个1~100的数据,存放进数组,并遍历它。
1、定义一个大小是100的数组 int arr[]=new int[100];\/\/定一个100大小的整型数组2、循环赋值1-100的数 for(int i=1;i<=100;i++){ arr[i-1] = i;\/\/赋值1-100的数}3、遍历数组 for(int i=0;i<arr.length;i++){\/\/数组最大值是arr.length,循环遍历数组 System.out.println...

随机数的方法,产生100个100以内的随机数,并将之存放于一个一维数组内...
public static void main(String[] args) { int[] array = new int[100];\/\/循环100次 for (int i = 0; i < array.length; i++) { \/\/随机100以内整数,赋值到数组 array[i]= new Random().nextInt(100);} \/\/控制台打印 for (int i : array) { System.out.print(i+" ");} ...

一个java编程题,怎么求出数组中重复数字的出现次数,并按次数从大到下...
include <iostream> #include <string> #include <fstream> using namespace std; int count=0; void countNum(int a[],int start,int finish) { \/\/cout<<start<<" \\n"<<finish<<"\\n"; int middle=(start+finish)\/2; if(start>finish) return ; if(a[middle]==2) { count++; ...

java:随机生成100个1000以内的整数存入数组并排序,然后输出最大的三...
import java.util.Arrays;public class Demo {public static void main(String[] args) {int numCount=100;\/\/随机数个数int maxValue=1000;\/\/随机数的上限int[] ary = new int[numCount];for (int i = 0; i < numCount; i++) {ary[i] = (int)(Math.random()*maxValue);\/\/随机数...

java中将1-100中所有奇数存到一个一维数组中,再按每行8个数据输出到屏...
public class Practice1 {public static void main(String[] args){int[] numbers = new int[50];for(int i = 0, j = (numbers[i] == 0?1:numbers[i]); i < 50 && j < 101; j++){if(j % 2 == 1){numbers[i] = j;i++;}}int count = 0;for(int number: numbers){...

...在1到100之间的整数,然后计算每个数出现的次数。输出结果不能有重复...
import java.util.*;\/ 我给你一个java编写的,你可以在控制台选择输入多少个数,你可以输入任意的整数,然后统计其中 每个数的出现的次数!\/ public class StatisticsClass { \/\/创建一个int类型的数组用于储存你输入的整数 private static int[] myArray;\/\/创建一个TreeMap类型的集合用于存储你输入的...

java如何找出一个int数组中出现次数最多
首先是统计数组中数字出现的次数,应该要有类似“数字 - 出现次数”这种结果出现,其实就是Map结构的key和value 然后就是找出出现次数最大的一个,并返回对应的数字即可 针对以上两个过程,推荐采用Java8的流(Stream)来处理,代码比较简单易懂,因此下面的示例代码,请在JDK8的环境下运行 int[] arr ...

相似回答