• 0

مساعدة في حل مشكلة برمجية؟

السلام عليكم اخواني اخواتي الاعزاء

في هذا الكود المدرج بالاسفل اريد ان اطبع اسم كل طالب  وكل طالب له 5  درجات تختلف عن الطالب الاخر لكن عندما تظهر نتائج الطباعه الاسماء تضهر بشكل صحيح لكن الدرجات تكون متشابه السبب هو ان مصفوفة الدرجات لا تخزن سو  اخر درجات طالب قمة باادخالها لكن لا اعرف ماهو الحل واتمنى ان اجد المساعده منكم 

ولكم من الله التوفيق

 

 int size;
            //int t = 0;
            int sizename;
            //int[] sum = new int[9];
            Console.WriteLine("plz enter the size of array for student degree ");
            size = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("plz enter the size of array for student names ");
            sizename = Convert.ToInt32(Console.ReadLine());

            int[] degree = new int[size];
            string[] name = new string[sizename];

            for (int i = 0; i < sizename; i++)
            {
                Console.WriteLine("plz enter the name of student ");

                name[i] = Console.ReadLine();
                Console.WriteLine("plz enter the degree of student ");
                for (int j = 0; j < size; j++)
                {

                    degree[j] = Convert.ToInt32(Console.ReadLine());
                }
                
            }
            for (int m = 0; m < sizename; m++)
            {
                Console.Write("the name of studen  " + name[m] + "  ");
                for (int k = 0; k < size; k++)
                {
                    Console.Write(degree[k]);
                }

                Console.ReadKey();
            }


        }
    }

}

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

تحياتي،

توجد المشكلة في جزأين من الكود، المشكلة الأولى هي عندما تقوم بتخزين مصفوفة العلامات، حيث يجب أن يكون حجمها هو عدد الطلاب × عدد العلامات

المشكلة الثانية هي عند التخزين، فأنت تقوم بالتخزين في نفس القيم لأنك تعيد ضبط j=0 عند بداية الحلقة

 

الحل يكون بالشكل التالي:

int size;
            //int t = 0;
            int sizename;
            //int[] sum = new int[9];
            Console.WriteLine("plz enter the size of array for student degree ");
            size = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("plz enter the size of array for student names ");
            sizename = Convert.ToInt32(Console.ReadLine());

            int[] degree = new int[size * sizename];
            string[] name = new string[sizename];

            int l = 0;
            for (int i = 0; i < sizename; i++)
            {
                Console.WriteLine("plz enter the name of student ");

                name[i] = Console.ReadLine();
                Console.WriteLine("plz enter the degree of student ");
                for (int j = 0; j < size; j++)
                {
                    degree[l] = Convert.ToInt32(Console.ReadLine());
                    l++;
                }

            }

           
            for (int m = 0; m < sizename; m++)
            {
                Console.Write("the name of student  " + name[m] + "  ");
                for (int k = 0 ; k < size; k++)
                {
                    Console.Write(degree[k + (m*size)] + " ");
                }
                Console.WriteLine();
                //Console.ReadKey();
            }

وعند التنفيذ يظهر الحل المرفق في الصورة. 

 

أعلمني اذا اردت مزيداً من الشرح. 

 

Capture.PNG

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

شكرا لك اخي الكريم بارك الله بك وجعله في ميزان حسناتك فعلا هذا هو الحل الامثل

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

يرجى اختيار الإجابة كأفضل إجابة وتعليمها كإجابة صحيحة.

بالتوفقيق.

بتاريخ منذ ساعة مضت قال أثير المنصوري:

شكرا لك اخي الكريم بارك الله بك وجعله في ميزان حسناتك فعلا هذا هو الحل الامثل

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن