מערך ב Java

berkshire

New member
מערך ב Java

שלום, אני מנסה לפתור את התרגיל הבא ולא כל כך מצליח:
אתחל מערך בן 10 תאים. כל תא במערך יקבל ערך אקראי בין 0-9.
התכנית תדפיס בשתי עמודות, כמה פעמים מופיעה כל סיפרה במערך (0-9).



int[] arr = new int [10];
Random rnd = new Random();
for(int i = 0; i < arr.length; i++){
arr = rnd.nextInt((UPPER_RANGE-LOWER_RANGE) + LOWER_RANGE);


for(i = 0; i < 5; ++i)
++arr[arr];

for(i = 0; i < 10; ++i)
System.out.printf("%d appears %d times\n", i, arr);
 

BravoMan

Active member
אתה לא מצליח כי אתה לא מנסה בכלל לעשות את מה שביקשו:

אתה מאתחל את המערך כפי שביקשו, אבל בחלק השני, הספירה, אתה עושה משהו לא ברור:
arr[arr]++; zzz מה זה?
מה ניסית לעשות כאן?
&nbsp
כל מה שהפעולה הזו עושה, זה להשמיד את הערכים המקוריים בהם אתחלת את המערך, היא אינה סופרת שום דבר...
 

BravoMan

Active member
צריך לספור...

אתה צריך מקום לשמור כמה פעמים ראיתה כל ספרה.
ואז כשאתה עובר על המערך המקורי, במקום לדרוס את הערכים בו, רק תגדיל את הספירה במקום האחר ששמרת.
 

berkshire

New member
הבהרה

אם המערך הוא 10, אני צריך 10 מקומות שונים כל ספרה במערך?
ואם המערך יהיה 100... מה אז
 

BravoMan

Active member
גודל המערך לא משנה.

ביקשו ממך לספור כמה מופיע כל ספרה.
כמה ספרות שונות יכולות להופיע?
&nbsp
כתבת שהספרות הן אקראיות מ-0 עד 9, אז לא משנה אם המערך הוא בגודל 100 או בגודל 1000 אתה עדיין צריך לספור כמה פעמים מופיעות 10 ספרות שונות.
 

berkshire

New member
לא יודע איך להמשיך מכאן



 

BravoMan

Active member
הקוד שלך עדיין לא רלוונטי לבעיה שהצגת.

אני לא יודע מה אתה מנסה לעשות, אתה סתם מעתיק ומדביק דברים מהרשת?
אתה יכול להסביר מה הקוד שהצגת עושה? שורה שורה?
 
למעלה