【Java】CCF刷題——201412-1門禁系統

  • 任務與代碼

試題編號:	201412-1試題名稱:	門禁系統時間限制:	1.0s內存限制:	256.0MB問題描述:	問題描述濤濤最近要負責圖書館的管理工作,需要記錄下每天讀者的到訪情況。每位讀者有一個編號,每條記錄用讀者的編號來表示。給出讀者的來訪記錄,請問每一條記錄中的讀者是第幾次出現。輸入格式輸入的第一行包含一個整數n,表示濤濤的記錄條數。第二行包含n個整數,依次表示濤濤的記錄中每位讀者的編號。輸出格式輸出一行,包含n個整數,由空格分隔,依次表示每條記錄中的讀者編號是第幾次出現。樣例輸入51 2 1 1 3樣例輸出1 1 2 3 1評測用例規模與約定1≤n≤1,000,讀者的編號爲不超過n的正整數。

100分代碼如下:

/*
 *文件名稱:ccf2.java
 *作者:陳happy
 *完成日期:2019.12.09
 *
 *問題描述: 濤濤負責圖書館的管理工作,記錄讀者到訪情況。每位讀者有一個編號,每條記錄用讀者的編號來表示。給出讀者的來訪記錄,計算每一條記錄中的讀者是第幾次出現。
 *程序輸入: 輸入的第一行包含一個整數n,表示濤濤的記錄條數; 第二行包含n個整數,依次表示濤濤的記錄中每位讀者的編號。
 *程序輸出: 輸出一行,包含n個整數,由空格分隔,依次表示每條記錄中的讀者編號是第幾次出現。
 */
 
import java.io.*;
import java.util.*;
public class Main {
	public static void main (String [] args) {
		int n;
		int i;
		int t;
		Scanner reader=new Scanner(System.in);
		n=reader.nextInt();
		int []b=new int[1000];
		int []c=new int[n];
		for(i=0;i<n;i++)
		{
			t=reader.nextInt();
			++b[t];
			c[i]=b[t];	
		}
		for(i=0;i<c.length;i++)
		System.out.print(c[i]+" ");
	}
}

  • 運行結果

運行結果圖

  • 心得
  1. 第一遍打完代碼,一直輸出不了結果,後來詢問了同學才發現是在循環語句中犯了低級錯誤:
	for(i=0;i<n;i++)

此時若寫成i<=n會出現下標越界,代碼在這裏就停止了,所以輸出不了;
2. 再接再厲吧!多發現問題與解決問題,衝鴨!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章