এই সমস্যায়, আমাদের একটি ছাত্রের রেকর্ড দেওয়া হয়েছে যাতে রয়েছে student_id, student_name, student_percentage। আমাদের কাজ হল স্টুডেন্ট রেকর্ডগুলিকে স্ট্রাকচার হিসাবে সংরক্ষণ করার জন্য একটি সি প্রোগ্রাম তৈরি করা এবং নাম অনুসারে সাজানো৷
৷সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
ইনপুট - ছাত্র রেকর্ড =
{{ student_id =1, student_name =nupur, student_percentage =98}, { student_id =2, student_name =Akash, student_percentage =75}, { student_id =3, student_name =Yash, student_percentage =62}, { student_id =4 , student_name =Jyoti, student_percentage =87}, { student_id =5, student_name =Ramlal, student_percentage =80}}
আউটপুট - ছাত্র রেকর্ড =
{{ student_id =2, student_name =Akash, student_percentage =75}, { student_id =4, student_name =Jyoti, student_percentage =87}, { student_id =1, student_name =nupur, student_percentage =98}, { student_id =5 , student_name =Ramlal, student_percentage =80}, { student_id =3, student_name =Yash, student_percentage =62}}
এই সমস্যাটি সমাধানের জন্য, আমরা প্রথমে একটি কাঠামো তৈরি করব যা শিক্ষার্থীর বিবরণ সংরক্ষণ করবে। এখন, আমরা qsort() ব্যবহার করব এবং সেই qsort-এ, আমরা এই qsort-এর জন্য একটি তুলনাকারী ফাংশন নির্ধারণ করব যা strcmp() পদ্ধতি ব্যবহার করে কাঠামোর নাম তুলনা করবে।
উদাহরণ
স্টুডেন্ট রেকর্ডগুলিকে কাঠামো হিসাবে সংরক্ষণ করার এবং নাম অনুসারে সাজানোর প্রোগ্রাম
//সি প্রোগ্রাম স্টুডেন্ট রেকর্ডগুলিকে স্ট্রাকচার হিসাবে সংরক্ষণ করে এবং নাম অনুসারে সাজানোর জন্য #include#include #include struct Student { int student_id; char* ছাত্রের_নাম; int student_percentage;};int comparator(const void*s1, const void*s2){ return strcmp(((struct Student*)s1)->student_name,((struct Student*)s2)->student_name);}int main () { int n =5; struct ছাত্র arr[n]; //ছাত্র 1 arr[0].student_id =1; arr[0].student_name ="নুপুর"; arr[0].student_percentage =98; //ছাত্র 2 arr[1].student_id =2; arr[1].student_name ="আকাশ"; arr[1].student_percentage =75; //ছাত্র 3 arr[2].student_id =3; arr[2].student_name ="যশ"; arr[2].student_percentage =62; //ছাত্র 4 arr[3].student_id =4; arr[3].student_name ="জ্যোতি"; arr[3].student_percentage =87; //ছাত্র 5 arr[4].student_id =5; arr[4].student_name ="রামলাল"; arr[4].student_percentage =80; printf("অনসর্টড স্টুডেন্ট রেকর্ড:\n"); (int i =0; i আউটপুট
<প্রে>বিন্যস্ত ছাত্র রেকর্ড:Id =1, নাম =নুপুর, বয়স =98Id =2, নাম =আকাশ, বয়স =75Id =3, নাম =যশ, বয়স =62Id =4, নাম =জ্যোতি, বয়স =87Id =5 , নাম =রামলাল, বয়স =80 শিক্ষার্থীর রেকর্ড নাম অনুসারে সাজানো:Id =2, নাম =আকাশ, বয়স =75Id =4, নাম =জ্যোতি, বয়স =87Id =1, নাম =নুপুর, বয়স =98Id =5, নাম =রামলাল , বয়স =80Id =3, নাম =যশ, বয়স =62