সমস্যা
C প্রোগ্রামিং ভাষায় স্ট্রাকচার ব্যবহার করে ক্রিকেটারের ডেটা অ্যাভারেজ রানসের ভিত্তিতে সর্টেড أور্ডারে ট্যাবুলার ফর্মে স্টোর করা।
সমাধান
ক্রিকেটারের ইনফরমেশন যেমন নাম, বয়স, ম্যাচ সংখ্যা ও গড় রান কনসোলে রানটাইমে ইনপুট নেওয়া হবে স্ট্রাকচার কনসেপ্ট ব্যবহার করে।
এবং প্রতিটি ব্যক্তির ডিটেইলস স্পষ্টভাবে বোঝার জন্য অ্যাভারেজ রানসের ভিত্তিতে সর্টেড অর্ডারে ট্যাবুলার ফর্মে প্রদর্শন করা হবে।
অ্যাভারেজ রানসের ভিত্তিতে ক্রিকেটারদের আরোহী ক্রমে সর্ট করার লজিক—
for (i = 0; i < 2; i++) {
for (j = i + 1; j < 2; j++) {
if (c[i].avrn > c[j].avrn) {
temp1 = c[i];
c[i] = c[j];
c[j] = temp1;
}
}
}
প্রোগ্রাম
#include<stdio.h>
#include<conio.h>
#include<string.h>
struct cricketer {
char name[50];
int age;
int match;
float avrn;
char temp;
};
struct cricketer c[20], temp1;
void main() {
int i, j;
for (i = 0; i < 2; i++) {
printf("Enter data of cricketer %d\n", i + 1);
// fflush(stdin);
printf("Name: ");
gets(c[i].name);
printf("\nAge: ");
scanf("%d", &c[i].age);
printf("\nMatches: ");
scanf("%d", &c[i].match);
printf("\n\nAverage runs: ");
scanf("%f", &c[i].avrn);
scanf("%c", &c[i].temp);
}
/******************/
/* sorting records */
/*******************/
for (i = 0; i < 2; i++) {
for (j = i + 1; j < 2; j++) {
if (c[i].avrn > c[j].avrn) {
temp1 = c[i];
c[i] = c[j];
c[j] = temp1;
}
}
}
printf("Sorted records:\n");
for (i = 0; i < 2; i++) {
printf("%d\t%s\t%d\t%d\t%f\n\n\n", i + 1, c[i].name, c[i].age, c[i].match, c[i].avrn);
}
getch();
}
আউটপুট
Enter data of cricketer 1 Name: Dhoni Age: 39 Matches: 150 Average runs: 200 Enter data of cricketer 2 Name: virat Age: 36 Matches: 135 Average runs: 190 Sorted records: 1 virat 36 135 190.000000 2 Dhoni 39 150 200.000000