1. 程式人生 > >計算每個數出現次數 java

計算每個數出現次數 java

問題描述

需要編寫程式,讀入int數,然後計算它們的出現次數,以升序表現, 以0結束。 在這裡插入圖片描述

程式


	private static Scanner input;

	public static void main(String[] args) {
		int[] mylist = nPrint();
		repeatNumbers(mylist);
	}

	private static void repeatNumbers(int[] mylist) {
		Arrays.sort(mylist);
		int j = 0;
		int[] number = new int[mylist.length]
; for (int i = 1; i < mylist.length; i++) { // System.out.println(mylist[i]); if (mylist[i - 1] != mylist[i]) { number[j] = mylist[i - 1]; j++; } } number[j] = mylist[mylist.length - 1]; int[] temp = new int[j + 1]; for (int i = 0; i < temp.length; i++) { for (int k =
0; k < mylist.length; k++) { if (number[i] == mylist[k]) temp[i]++; } } for (int i = 0; i < temp.length; i++) { System.out.print(number[i] + " occurs " + temp[i] + " time"); if(temp[i]>1) System.out.println("s"); else System.out.println(); } } private static
int[] nPrint() { input = new Scanner(System.in); System.out.print("Enter the integers between 1 ans 100:"); int[] mylist = new int[1]; int i = 0; while (true) { mylist[i] = input.nextInt(); if (mylist[i] == 0) break; mylist = newArr(mylist); i++; } int[] newMylist; newMylist = Arrays.copyOf(mylist, mylist.length - 1); return newMylist; } private static int[] newArr(int[] mylist) { int[] newMylist = new int[mylist.length + 1]; for (int i = 0; i < mylist.length; i++) { newMylist[i] = mylist[i]; } return newMylist; }

分析程式

程式一開始是輸入函式nPrint(),但是由於題意,我必須再加入一個擴容函式newArr來保證陣列的輸入正確。 然後,我使用了repeatNumbers來計算和輸出,思路為先將陣列排序,再用number[]陣列來存放數字,數字是單一的(集合也能做到,不過有些忘記了)先用這個吧。 之後,一個一個比較計數,最後迴圈輸出。