|
发表于 2022-12-11 21:28:58
|
显示全部楼层
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <malloc.h>
- typedef struct Node{
- char ID[13], name[21]; // 最后一位留给空字符 '\0'
- unsigned short math, c;
- struct Node* next;
- }Node;
- void show(Node* head, int sum) {
- if (head) {
- sum += 1;
- show(head->next, sum);
- if (head->c >= 60) {
- printf("%s %s %hu %hu\n", head->ID, head->name, head->math, head->c);
- }
- }
- else {
- printf("%d\n", sum - 1);
- return;
- }
- }
- void freeAll(Node** head) {
- Node* p;
- while (*head) {
- p = (*head);
- *head = (*head)->next;
- free(p);
- }
- free(*head);
- }
- int main(void) {
- Node* head, * tail = head = NULL;
- int N, t;
- if (scanf("%d", &N)) {
- for (int n = 0; n < N; ++n) {
- tail = head;
- head = (Node*)malloc(sizeof(Node));
- if (head) {
- if (scanf("%s", head->ID)) {
- head->ID[12] = '\0';
- if (getchar());
- t = 0;
- while ((head->name[t++] = getchar()) != ' ');
- head->name[--t] = '\0';
- if (scanf("%hu%hu", &head->math, &head->c));
- }
- head->next = tail;
- }
- }
- }
- show(head, 0);
- freeAll(&head);
- return 0;
- }
复制代码- 3
- 201410300106 wanyun 70 88
- 201618050322 zhangyu 59 60
- 201509210118 lixiao 80 59
- 2
- 201410300106 wanyun 70 88
- 201618050322 zhangyu 59 60
复制代码 |
|