ปัญหา
วิธีเก็บข้อมูลของนักคริกเก็ตในรูปแบบตารางในลำดับการเรียงตามการวิ่งเฉลี่ยโดยใช้โครงสร้างในภาษา C Programming
วิธีแก้ปัญหา
ลองป้อนข้อมูลนักคริกเก็ต เช่น ชื่อ อายุ จำนวนการแข่งขัน และการวิ่งเฉลี่ยที่เขาทำคะแนน มันจะถูกป้อนในคอนโซลตอนรันไทม์โดยใช้แนวคิดโครงสร้าง
และพยายามแสดงข้อมูลในรูปแบบตารางโดยเรียงลำดับตามการวิ่งเฉลี่ยของแต่ละคน เพื่อให้ง่ายต่อการระบุรายละเอียดของแต่ละคนอย่างชัดเจน
ตรรกะที่เราใช้ในการจัดเรียงคริกเก็ตตามลำดับจากน้อยไปมากตามค่าเฉลี่ยที่พวกเขาทำคะแนนคือ -
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