اذهب إلى المحتوى
  • 0

برنامج بلغة C يطلب من المستخدم إدخال جملة ومن ثم يحسب الحرف الأكثر تكرارًا في الجملة ويطبع عدد مرات تكراره

Nancy Hassan2

السؤال

A program that asks the user to enter a sentence with a maximum of 50 characters, and prints the number of the most frequent characters in the sentence

 

 

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

لكونه سؤال إختباري فسيتم توفير خطوات الحل فقط، اللازمة لإنشاء برنامج يطلب من المستخدم إدخال جملة ومن ثم يحسب الحرف الأكثر تكرارًا في الجملة ويطبع عدد مرات تكراره.

إليك الخطوات:

1- تعريف المتغيرات اللازمة للبرنامج، وهي:

  • مصفوفة من الحروف لتخزين الجملة المدخلة من المستخدم
  • متغير يمثل الحرف الأكثر تكرارًا في الجملة
  • متغير يمثل عدد مرات تكرار الحرف الأكثر تكرارًا في الجملة
  • متغير لتخزين عدد المرات التي يتكرر فيها الحرف الحالي في الجملة

2- الطلب من المستخدم لإدخال الجملة وتخزينها في المصفوفة المعرفة في الخطوة الأولى.

3- إنشاء حلقة for لتحليل الجملة حرفًا حرفًا.

4- داخل حلقة for، تعيين قيمة العداد للحرف الحالي إلى 1.

5- داخل حلقة for، دوران حلقة ثانية مضمنة داخلها لحساب عدد مرات تكرار الحرف الحالي في الجملة.

6-داخل حلقة for الثانية، إذا تم العثور على حرف يتطابق مع الحرف الحالي، فزيادة قيمة العداد.

7- داخل حلقة for الثانية، إذا تم العثور على حرف بتردد أعلى من الحرف الحالي، تعيين قيمة الحرف الأكثر تكرارًا إلى هذا الحرف وتحديث قيمة المتغير المعد لحساب عدد مرات تكراره.

8- طباعة الحرف الأكثر تكرارًا وعدد مرات تكراره.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

طريقة أخرى أكثر سرعة للقيام بذلك، هي أن تقوم بتعريف مصفوفة عدد عناصرها 28 بحيث يمثل كل عنصر محرف ( و يمكنك زيادة عدد العناصر في حال كنت ترغب بعد الفراغات و علامات الترقيم و الارقام و ما إلى هنالك، المهم عنصر من أجل كل محرف تريده).

و من ثم المرور على عناصر الجملة حرف حرف، و في كل مرة نقوم بزيادة قيمة المصفوفة عند هذا المحرف، يمكن ذلك عن طريق تحويل المحرف إلى العدد الذي يقابله (فكل محرف يمثل على شكل عدد في السي).

أي مثال على ذلك:

char s[] = "abcaa";

int cnt[255] = {0};

for (int i = 0 ; i < strlen(s) ; ++i)
{
  char c = s[i];
  cnt[c]++;
}

بعدها ببساطة يمكن المرور على عناصر هذه المصفوفة و أخذ الأكبر منها.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...