讀入 N 名學生的姓名、學號、成績,輸出成績最高和最低的學生姓名與學號。
Student 包含姓名、學號、成績max_stu.score = -1,min_stu.score = 101(題目分數範圍 0-100)#include <stdio.h>
#include <string.h>
struct Student {
char name[11];
char id[11];
int score;
};
int main(void) {
int n;
scanf("%d", &n);
struct Student max_stu = {"", "", -1};
struct Student min_stu = {"", "", 101};
struct Student tmp;
for (int i = 0; i < n; i++) {
scanf("%s %s %d", tmp.name, tmp.id, &tmp.score);
if (tmp.score > max_stu.score) max_stu = tmp; // 結構體整體賦值
if (tmp.score < min_stu.score) min_stu = tmp;
}
printf("%s %s\n", max_stu.name, max_stu.id);
printf("%s %s\n", min_stu.name, min_stu.id);
return 0;
}
max_stu = tmp),自動複製所有成員,比逐字符複製更簡潔高效。scanf("%s", name) 時未限制長度,可能溢出(建議 %10s)stu[100])浪費空間,本題無需存儲所有數據