我是编写代码的新手。我需要制作一个程序,将15个数字读入0到50之间的数组,然后打印出现。这是我到目前为止所做的。
import java.util.Scanner;
public class Occurrence
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
int [] nmberchck = new nmberchck[50];
int[] numbs = new int[15];
System.out.println("Enter 15 numbers that are between 0 and 50 ");
System.out.println();
numbs[0] = scan.nextInt();
numbs[1] = scan.nextInt();
numbs[2] = scan.nextInt();
numbs[3] = scan.nextInt();
numbs[4] = scan.nextInt();
numbs[5] = scan.nextInt();
numbs[6] = scan.nextInt();
numbs[7] = scan.nextInt();
numbs[8] = scan.nextInt();
numbs[9] = scan.nextInt();
numbs[10] = scan.nextInt();
numbs[11] = scan.nextInt();
numbs[12] = scan.nextInt();
numbs[13] = scan.nextInt();
numbs[14] = scan.nextInt();
for (int nmb = 0; nmb < numbs.length; nmb++)
谢谢
答案 0 :(得分:1)
public static void main(String[] args) {
int[] nmberchck = new int[51];
int[] numbs = new int[15];
Scanner sc = new Scanner(System.in);
System.out.println("Enter 15 numbers that are between 0 and 50 ");
System.out.println();
for (int i = 0; i < 15; i++) {
numbs[i] = sc.nextInt();
}
for (int i = 0; i < 15; i++) {
if (!(numbs[i] < 0 || numbs[i] > 50))
nmberchck[numbs[i]]++;
}
for (int i = 0; i < nmberchck.length; i++)
if (nmberchck[i] > 0)
System.out.println(i + " occured " + nmberchck[i]
+ " times");
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
HashMap<Integer, Integer> x = new HashMap<Integer, Integer>();
ArrayList<Integer> m = new ArrayList<Integer>();
for (int i = 0; i < 15; i++) {
int tmp = sc.nextInt();
if (!x.containsKey(tmp))
x.put(tmp, 1);
else
x.put(tmp, x.get(tmp) + 1);
if (!m.contains(tmp))
m.add(tmp);
}
for (int i = 0; i < m.size(); i++)
System.out.println(m.get(i) + " occured " + x.get(m.get(i)) + " times");
}
这将打印出每个数字按递增顺序出现的次数。希望这会有所帮助。
答案 1 :(得分:0)
所以你必须打印输入的每个数字的出现次数吗?
我不知道你老师的想法,但你已经有一个叫做nmberchck的50个数组。您可以使用此数组来计算每个数字的出现次数,因为数字介于0和50之间。实际上,如果您包含数字0和50,则实际上需要51的数组。
首先,每个数字出现0次。因此,最初需要将nmberchck中的每个元素设置为0.您可以使用循环来执行此操作。
接下来,您必须接受15个数字作为输入,并使用nmberchck计算每个数字。因为你做了15次同样的事情,所以请使用循环。
所以有两个循环,一个用于初始化,一个用数字读取并计算它。
这两个循环是否嵌套?要回答这个问题,请了解您正在做多少次重复。 首先将nmberchck元素初始化为0:51重复。 然后得到输入:15次重复。 总计:66次重复。
当重复添加像这样时,这是一个循环跟随另一个循环。
嵌套循环是另一个循环,在这种情况下重复繁殖。
接下来要做的就是打印出结果。由于nmberchck包含您的结果,您将再次遍历它。
当您尝试编写代码时,请将解决问题的方法分解为简单的步骤。尝试量化并理解你自己如何解决它。你会如何手工解决这个问题?在理解之前,你不能编写代码。
BTW,这不是解决这个问题的最有效方法,但它是对数组,循环和索引的一个很好的介绍。大多数的nmberchck元素都不会被使用,因为你只输入了15个数字 - nmberchck是一个人口稀少的数组。