ترتيب أسماء المستخدمين بشكل أبجدي في برنامج C++
لديك بعض الأخطاء في الشيفرة البرمجية التي تمنع عرض الأسماء بترتيب أبجدي صحيح. أولاً وقبل كل شيء، يجب عليك مقارنة السلاسل باستخدام دوال المقارنة وليس باستخدام علامات التنصيص. ثانيًا، تحتاج إلى استخدام دوال المقارنة بشكل صحيح وتقارن الأسماء دون وجود علامات تنصيص. هنا الشيفرة البرمجية المصححة:
cpp#include
#include
using namespace std;
const int size = 10;
char name1[size];
char name2[size];
char name3[size];
int main() {
cout << "Enter a name: ";
cin.getline(name1, size);
cout << "Enter a name: ";
cin.getline(name2, size);
cout << "Enter a name: ";
cin.getline(name3, size);
if (strcmp(name1, name2) > 0 && strcmp(name1, name3) > 0) {
cout << name1 << " ";
if (strcmp(name2, name3) > 0) {
cout << name2 << " " << name3 << endl;
} else {
cout << name3 << " " << name2 << endl;
}
} else if (strcmp(name2, name1) > 0 && strcmp(name2, name3) > 0) {
cout << name2 << " ";
if (strcmp(name1, name3) > 0) {
cout << name1 << " " << name3 << endl;
} else {
cout << name3 << " " << name1 << endl;
}
} else if (strcmp(name3, name1) > 0 && strcmp(name3, name2) > 0) {
cout << name3 << " ";
if (strcmp(name1, name2) > 0) {
cout << name1 << " " << name2 << endl;
} else {
cout << name2 << " " << name1 << endl;
}
} else {
cout << "Nothing happened....." << endl;
}
return 0;
}
تأكد من أنك تستخدم strcmp
لمقارنة السلاسل النصية. يقوم strcmp
بمقارنة السلاسل وإرجاع قيمة صفر إذا كانت متطابقة، قيمة أكبر من صفر إذا كانت الأولى أكبر، وقيمة أقل من صفر إذا كانت الثانية أكبر.
-
كيفية العثور على معرّف المشروع في GitLab API29/03/2024
-
استخدام محرك عشوائي في C++23/03/2024
المزيد من المعلومات
في هذا السياق، يُلاحظ أن الشيفرة البرمجية التي قدمتها تقوم بتحقيق مهمة بسيطة وهي طلب ثلاثة أسماء من المستخدم وثم عرضها بترتيب أبجدي. تحتاج إلى فهم بعض النقاط الأساسية في الشيفرة:
-
تحديد الحجم: يتم تحديد حجم السلسلة باستخدام
const int size = 10;
. يجب أن يكون هذا الحجم كافيًا لاستيعاب الأسماء التي قد يدخلها المستخدم. -
الإدخال: يتم استخدام
cin.getline
للسماح للمستخدم بإدخال الأسماء. هذا يسمح بقراءة سلسلة نصية كاملة تحتوي على فراغات. -
مقارنة السلاسل: تستخدم دالة
strcmp
لمقارنة السلاسل. هذه الدالة تعيد قيمة صفر إذا كانت السلاسل متطابقة، وقيمة أكبر من صفر إذا كانت الأولى أكبر، وقيمة أقل من صفر إذا كانت الثانية أكبر. -
عرض النتيجة: يتم استخدام سلسلة من الشروط لتحديد ترتيب الأسماء ومن ثم يتم عرضها بشكل مرتب.
-
رسالة “Nothing happened”: في حالة عدم تطابق أي من الشروط، يتم عرض رسالة “Nothing happened”، وهي رسالة تنبيه تشير إلى عدم حدوث أي من الحالات المتوقعة.
تأكد من أن تتفهم هذه النقاط وقم بتنفيذ الشيفرة بعناية للحصول على النتائج المطلوبة. إذا كنت بحاجة إلى مساعدة إضافية في جزء معين، فلا تتردد في طرح أسئلتك.