日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

最小年龄的3个职工

發布時間:2025/4/16 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最小年龄的3个职工 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目截圖:

?

思路:

  關鍵字順序:年齡>工號>姓名,從小到大自定義 cmp?函數,然后使用內置的 qsort?函數即可。qsort?的用法詳見另一篇博客。

?

代碼如下:

1 /* 2 最小年齡的3個職工 3 */ 4 5 #include <stdio.h> 6 #include <string.h> 7 #include <math.h> 8 #include <stdlib.h> 9 #include <time.h> 10 #include <stdbool.h> 11 12 // 員工結構體定義 13 typedef struct { 14 int id; // 職工號 15 char name[11]; // 姓名 16 int age; // 年齡 17 } staff; 18 staff staffs[31]; // 存儲所有員工數據 19 20 // 自定義排序 21 // 關鍵字順序:年齡>工號>姓名,從小到大。 22 int cmp(const void* a, const void* b) { 23 staff* c = (staff*)a; 24 staff* d = (staff*)b; 25 if(c->age == d->age) { 26 if(c->id == d->id) { 27 return strcmp(c->name, d->name); 28 } else { 29 return c->id - d->id; 30 } 31 } else { 32 return c->age - d->age; 33 } 34 } 35 36 int main() { 37 int n, i; 38 while(scanf("%d", &n) != EOF) { 39 for(i=0; i<n; ++i) { // 輸入員工信息 40 staff s; 41 scanf("%d %s %d", &s.id, s.name, &s.age); 42 staffs[i] = s; 43 } 44 // 按要求排序 45 qsort(staffs, n, sizeof(staffs[0]), cmp); 46 // 輸出結果行數為N和3的較小值 47 int min = (n<3 ? n : 3); 48 for(i=0; i<min; ++i) { // 按要求輸出 49 staff s = staffs[i]; 50 printf("%d %s %d\n", s.id, s.name, s.age); 51 } 52 } 53 54 return 0; 55 }

?

轉載于:https://www.cnblogs.com/coderJiebao/p/HustTest16.html

總結

以上是生活随笔為你收集整理的最小年龄的3个职工的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。