اهلا
واجهت مشكلة في معرفة عدد التكرار لكل عنصر موجود بالمصفوفة
int array[] = {0, 15, 0, 6,1,15,7, 0, 04};
for(int i=0; i<array.length; i++){
for(int i2=0; i2<array.length;i2++){
if(array[i2] == array[i2+1]){
int count++;
}
}
}أرجو المساعدة
اهلا
واجهت مشكلة في معرفة عدد التكرار لكل عنصر موجود بالمصفوفة
int array[] = {0, 15, 0, 6,1,15,7, 0, 04};
for(int i=0; i<array.length; i++){
for(int i2=0; i2<array.length;i2++){
if(array[i2] == array[i2+1]){
int count++;
}
}
}أرجو المساعدة

I am learning from you
it is the programmer eye
يُمكنك كتابة دالة تتحق من تكرار عنصر واحد داخل المصفوفة ثم تقوم بعمل for مثلا و في كل مرة تُمرر للدالة الخانة رقم i من المصفوفة.
الدالة ستكون هكذا :
public class NewClass {
public static int repeatCount(int arr[], int elem, int length) {
int count = 0;
for (int i = 0; i < length; i++) {
if (arr == elem) {
count++;
}
}
return (count == 0 ? 0 : count);
}
public static void main(String args[]) {
int array[] = {0, 15, 0, 6, 1, 15, 7, 0, 04};
int num = array[0x1];
System.out.println("Le nombre d'apparition de " + num + " égal " + repeatCount(array, num, 9));
}
}أو يُمكنك استخدام الــ HashMap إن أردت:
import java.util.HashMap;
import java.util.Map;
public class NewClass {
public static void main(String[] args) {
// Tableau à compter
final String[] tab = {"0", "15", "0", "6", "1", "15", "7", "0", "04"};
// Comptage
Map<String, int[]> map = new HashMap<String, int[]>();
for (String item : tab) {
int[] nombre = map.get(item);
if (nombre == null) {
nombre = new int[]{0};
map.put(item, nombre);
}
nombre[0]++;
}
// Affichage
for (String key : map.keySet()) {
int[] nombre = map.get(key);
System.out.println("[" + key + "] --> " + nombre[0]);
}
}
}تحياتي.
تم تعديل هذه المشاركة بواسطة Sn@CkeR في 17 نوفمبر 2012 في 16:12
C++ and Java, say, are presumably growing faster than plain C, but I bet C will still be around. ― Dennis Ritchie
~OoO~________--------------------------------------------________~OoO~
من مواضيعي :
شكر كثيييير اخوي Sn@CkeR
:happy:
الله يسلم ايديك :)

I am learning from you
it is the programmer eye
السلام عليكم
مرحباً بك عزيزي المشاكس مجدداً , هلا تكرمت علينا بمعرفة اسمك أخي المشاكس الكريم ![]()
أنت تسأل عن سبب المشكلة في الكود الذي كتبته أولاً أنت قمت بإستخدام متغير قبل تعريفه وهو :
int count++;
- لأن هذه الصيغة هي :
int count = count +1;
- وهي عبارة عن استخدام متغير معرف قبل هذا , ولهذا لا يصلح تعريف المتغيرات المضافه إليها المؤثرات الحسابية مباشراً .
ثانياً : بما أنك ستقوم بإستخدام عداد للجمع فيجب تعريفه خارج نطاق الدوران وإعطاءه القيمة الإبتدائية 0 .
ثالثاً : أنت تضع عداد الحلقة الداخلية من 0 إلى أصغر من عدد عناصر المصفوفة كلام سليم ولكن تقوم بزيادة 1 لعملية المقارنة وبالتالي عند الوصول لأخر عنصر في المصفوفة سيحدث خطأ لتخطي الـindex للمصفوفة في عملية المساواه .
وفي النهاية أنت تريد إستخراج عدد التكرارت لكل عنصر من عناصر المصفوفة وبالتالي ما تحتاجه هو إزالة العدد 1 المضاف عند عملية المساواة لمساواة كل عنصر من عناصر الحلقة الخارجية بكل عناصر الحلقة الداخلية بمعنى مساواة كل عنصر من عناصر المصفوفة بجميع عناصر المصفوفة لمعرفة عدد التكرارات , ولكن لا تنسى طباعة عدد التكرارت لكل عنصر و تصفير العداد count بعد كل حلقه من حلقات الدوران الخارجي .
لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق
لا إله إلا أنت سبحانك إني كنت من الظالمين
مشكور أحمد
اقتباسمرحباً بك عزيزي المشاكس مجدداً , هلا تكرمت علينا بمعرفة اسمك أخي المشاكس الكريم
ناجي :lol:

I am learning from you
it is the programmer eye
- شرُفنا لقائك أستاذ ناجي وناجين جميعاً إن شاء اللهاقتباسناجي
- في إنتظار محاولت تعديل كودك لينفذ العملية بشكل جيد .
لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق
لا إله إلا أنت سبحانك إني كنت من الظالمين
السلام عليكم
وفيك , أين الحل ؟![]()
- عموماً هذا هو الحل بطريقتك ولكن أضفت حلقة أخرى لعدم تكرار كتابة النتائج :
int array[] = {0, 15, 0, 6,1,15,7, 04};
int count = 0;
for(int i=0; i<array.length; i++){
for(int i2=0; i2<array.length;i2++){
if(array == array[i2]){
count++;
}
}
boolean isFound = false;
for(int j=i+1;j<array.length;j++){
if(array == array[j])
{
isFound = true;
break;
}
}
if(!isFound)
{
System.out.println(array+" Found "+count+" Times");
}
count = 0;
}- أخي محمد ألقيت نظرة على الكود الذي كتبته , ولكن ألا ترى أنه لا فائده من هذا الشرط :
(count == 0 ? 0 : count)
- ولماذا وضعت وسيط ثالث للداله مادام بإستطاعتنا حساب عدد عناصر المصفوفة بـlength .
دمتم في رعاية الله
لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق
لا إله إلا أنت سبحانك إني كنت من الظالمين
مشكور احمد
انا ايضا لم افهم
(count == 0 ? 0 : count)
جيدا
:lol:

I am learning from you
it is the programmer eye
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…