#include <stdio.h>// ใช้สำหรับฟังก์ชันพื้นฐาน เช่น printf(), scanf()
#include <string.h> // ใช้สำหรับจัดการ string เช่น strcpy(), strlen() เป็นต้น
typedef struct{
char id[12];// รหัสนักเรียน (string ขนาดไม่เกิน 11 ตัวอักษร + '\0')
char name[50]; // ชื่อนักเรียน
int year;// ปีการศึกษา (หรือปีที่เรียนอยู่)
float gpa;// เกรดเฉลี่ย
} Student;// ตั้งชื่อ struct นี้ว่า Student
void printStudent(Student s){
// แสดงข้อมูลนักเรียนในรูปแบบ id ชื่อ ปี GPA (ทศนิยม 2 ตำแหน่ง)
printf("%s\t%s\t%d\t%.2f\n", s
.id
, s
.name
, s
.year
, s
.gpa
); }
int main(){
int n; // ตัวแปรสำหรับเก็บจำนวนนักเรียน
scanf("%d", &n); // รับค่าจำนวนของนักเรียนจากผู้ใช้
Student a[100]; // ประกาศ array ของ Student รองรับได้สูงสุด 100 คน
for(int i=0;i<n;i++){ // วนลูปเพื่อรับข้อมูลนักเรียนแต่ละคน
scanf("%11s %49s %d %f", a[i].id, a[i].name, &a[i].year, &a[i].gpa);
}
// หาค่าสูงสุด
// หานักเรียนที่มี GPA สูงสุด
int idx=0; // เริ่มต้นด้วย index 0 เป็นค่าที่มากที่สุดชั่วคราว
for(int i=1;i<n;i++) if(a[i].gpa > a[idx].gpa) // เริ่มต้นด้วย index 0 เป็นค่าที่มากที่สุดชั่วคราว
idx=i; // เปลี่ยน index max เป็น index นี้
printf("Max GPA: "); // แสดงข้อมูลนักเรียนที่มี GPA สูงสุด printStudent(a[idx]); // เรียกฟังก์ชันแสดงข้อมูลของนักเรียนคนนั้น
return 0;// จบโปรแกรม
}
I2luY2x1ZGUgPHN0ZGlvLmg+Ly8g4LmD4LiK4LmJ4Liq4Liz4Lir4Lij4Lix4Lia4Lif4Lix4LiH4LiB4LmM4LiK4Lix4LiZ4Lie4Li34LmJ4LiZ4LiQ4Liy4LiZIOC5gOC4iuC5iOC4mSBwcmludGYoKSwgc2NhbmYoKQojaW5jbHVkZSA8c3RyaW5nLmg+IC8vIOC5g+C4iuC5ieC4quC4s+C4q+C4o+C4seC4muC4iOC4seC4lOC4geC4suC4oyBzdHJpbmcg4LmA4LiK4LmI4LiZIHN0cmNweSgpLCBzdHJsZW4oKSDguYDguJvguYfguJnguJXguYnguJkKdHlwZWRlZiBzdHJ1Y3R7CiBjaGFyIGlkWzEyXTsvLyDguKPguKvguLHguKrguJnguLHguIHguYDguKPguLXguKLguJkgKHN0cmluZyDguILguJnguLLguJTguYTguKHguYjguYDguIHguLTguJkgMTEg4LiV4Lix4Lin4Lit4Lix4LiB4Lip4LijICsgJ1wwJykKIGNoYXIgbmFtZVs1MF07IC8vIOC4iuC4t+C5iOC4reC4meC4seC4geC5gOC4o+C4teC4ouC4mQogaW50IHllYXI7Ly8g4Lib4Li14LiB4Liy4Lij4Lio4Li24LiB4Lip4LiyICjguKvguKPguLfguK3guJvguLXguJfguLXguYjguYDguKPguLXguKLguJnguK3guKLguLnguYgpCiBmbG9hdCBncGE7Ly8g4LmA4LiB4Lij4LiU4LmA4LiJ4Lil4Li14LmI4LiiCn0gU3R1ZGVudDsvLyDguJXguLHguYnguIfguIrguLfguYjguK0gc3RydWN0IOC4meC4teC5ieC4p+C5iOC4siBTdHVkZW50CnZvaWQgcHJpbnRTdHVkZW50KFN0dWRlbnQgcyl7CiAgICAgIC8vIOC5geC4quC4lOC4h+C4guC5ieC4reC4oeC4ueC4peC4meC4seC4geC5gOC4o+C4teC4ouC4meC5g+C4meC4o+C4ueC4m+C5geC4muC4miBpZCDguIrguLfguYjguK0g4Lib4Li1IEdQQSAo4LiX4Lio4LiZ4Li04Lii4LihIDIg4LiV4Liz4LmB4Lir4LiZ4LmI4LiHKQogcHJpbnRmKCIlc1x0JXNcdCVkXHQlLjJmXG4iLCBzLmlkLCBzLm5hbWUsIHMueWVhciwgcy5ncGEpOwp9CmludCBtYWluKCl7CiBpbnQgbjsgLy8g4LiV4Lix4Lin4LmB4Lib4Lij4Liq4Liz4Lir4Lij4Lix4Lia4LmA4LiB4LmH4Lia4LiI4Liz4LiZ4Lin4LiZ4LiZ4Lix4LiB4LmA4Lij4Li14Lii4LiZCiBwcmludGYoIm4gPSAiKTsKIHNjYW5mKCIlZCIsICZuKTsgLy8g4Lij4Lix4Lia4LiE4LmI4Liy4LiI4Liz4LiZ4Lin4LiZ4LiC4Lit4LiH4LiZ4Lix4LiB4LmA4Lij4Li14Lii4LiZ4LiI4Liy4LiB4Lic4Li54LmJ4LmD4LiK4LmJCiBTdHVkZW50IGFbMTAwXTsgLy8g4Lib4Lij4Liw4LiB4Liy4LioIGFycmF5IOC4guC4reC4hyBTdHVkZW50IOC4o+C4reC4h+C4o+C4seC4muC5hOC4lOC5ieC4quC4ueC4h+C4quC4uOC4lCAxMDAg4LiE4LiZCiBmb3IoaW50IGk9MDtpPG47aSsrKXsgLy8g4Lin4LiZ4Lil4Li54Lib4LmA4Lie4Li34LmI4Lit4Lij4Lix4Lia4LiC4LmJ4Lit4Lih4Li54Lil4LiZ4Lix4LiB4LmA4Lij4Li14Lii4LiZ4LmB4LiV4LmI4Lil4Liw4LiE4LiZCiBwcmludGYoImlkIG5hbWUgeWVhciBncGE6ICIpOwogc2NhbmYoIiUxMXMgJTQ5cyAlZCAlZiIsIGFbaV0uaWQsIGFbaV0ubmFtZSwgJmFbaV0ueWVhciwgJmFbaV0uZ3BhKTsKIH0KIC8vIOC4q+C4suC4hOC5iOC4suC4quC4ueC4h+C4quC4uOC4lAogIC8vIOC4q+C4suC4meC4seC4geC5gOC4o+C4teC4ouC4meC4l+C4teC5iOC4oeC4tSBHUEEg4Liq4Li54LiH4Liq4Li44LiUCiBpbnQgaWR4PTA7IC8vIOC5gOC4o+C4tOC5iOC4oeC4leC5ieC4meC4lOC5ieC4p+C4oiBpbmRleCAwIOC5gOC4m+C5h+C4meC4hOC5iOC4suC4l+C4teC5iOC4oeC4suC4geC4l+C4teC5iOC4quC4uOC4lOC4iuC4seC5iOC4p+C4hOC4o+C4suC4pwogZm9yKGludCBpPTE7aTxuO2krKykgaWYoYVtpXS5ncGEgPiBhW2lkeF0uZ3BhKSAgLy8g4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4LiU4LmJ4Lin4LiiIGluZGV4IDAg4LmA4Lib4LmH4LiZ4LiE4LmI4Liy4LiX4Li14LmI4Lih4Liy4LiB4LiX4Li14LmI4Liq4Li44LiU4LiK4Lix4LmI4Lin4LiE4Lij4Liy4LinCiAgICBpZHg9aTsgLy8g4LmA4Lib4Lil4Li14LmI4Lii4LiZIGluZGV4IG1heCDguYDguJvguYfguJkgaW5kZXgg4LiZ4Li14LmJCiBwcmludGYoIk1heCBHUEE6ICIpOyAgLy8g4LmB4Liq4LiU4LiH4LiC4LmJ4Lit4Lih4Li54Lil4LiZ4Lix4LiB4LmA4Lij4Li14Lii4LiZ4LiX4Li14LmI4Lih4Li1IEdQQSDguKrguLnguIfguKrguLjguJQKIHByaW50U3R1ZGVudChhW2lkeF0pOyAgLy8g4LmA4Lij4Li14Lii4LiB4Lif4Lix4LiH4LiB4LmM4LiK4Lix4LiZ4LmB4Liq4LiU4LiH4LiC4LmJ4Lit4Lih4Li54Lil4LiC4Lit4LiH4LiZ4Lix4LiB4LmA4Lij4Li14Lii4LiZ4LiE4LiZ4LiZ4Lix4LmJ4LiZCiByZXR1cm4gMDsvLyDguIjguJrguYLguJvguKPguYHguIHguKPguKEKfQ==
#include <stdio.h>// ใช้สำหรับฟังก์ชันพื้นฐาน เช่น printf(), scanf()
#include <string.h> // ใช้สำหรับจัดการ string เช่น strcpy(), strlen() เป็นต้น
typedef struct{
char id[12];// รหัสนักเรียน (string ขนาดไม่เกิน 11 ตัวอักษร + '\0')
char name[50]; // ชื่อนักเรียน
int year;// ปีการศึกษา (หรือปีที่เรียนอยู่)
float gpa;// เกรดเฉลี่ย
} Student;// ตั้งชื่อ struct นี้ว่า Student
void printStudent(Student s){
// แสดงข้อมูลนักเรียนในรูปแบบ id ชื่อ ปี GPA (ทศนิยม 2 ตำแหน่ง)
printf("%s\t%s\t%d\t%.2f\n", s.id, s.name, s.year, s.gpa);
}
int main(){
int n; // ตัวแปรสำหรับเก็บจำนวนนักเรียน
printf("n = ");
scanf("%d", &n); // รับค่าจำนวนของนักเรียนจากผู้ใช้
Student a[100]; // ประกาศ array ของ Student รองรับได้สูงสุด 100 คน
for(int i=0;i<n;i++){ // วนลูปเพื่อรับข้อมูลนักเรียนแต่ละคน
printf("id name year gpa: ");
scanf("%11s %49s %d %f", a[i].id, a[i].name, &a[i].year, &a[i].gpa);
}
// หาค่าสูงสุด
// หานักเรียนที่มี GPA สูงสุด
int idx=0; // เริ่มต้นด้วย index 0 เป็นค่าที่มากที่สุดชั่วคราว
for(int i=1;i<n;i++) if(a[i].gpa > a[idx].gpa) // เริ่มต้นด้วย index 0 เป็นค่าที่มากที่สุดชั่วคราว
idx=i; // เปลี่ยน index max เป็น index นี้
printf("Max GPA: "); // แสดงข้อมูลนักเรียนที่มี GPA สูงสุด
printStudent(a[idx]); // เรียกฟังก์ชันแสดงข้อมูลของนักเรียนคนนั้น
return 0;// จบโปรแกรม
}