1. 程式人生 > >統計學生信息(使用鏈表完成)

統計學生信息(使用鏈表完成)

雙向鏈表 rcm math cstring true 個學生 分鐘 其中 oid

【描述】

利用動態鏈表記錄從標準輸入輸入的學生信息(學號、姓名、性別、年齡、得分、地址)

其中,學號長度不超過20, 姓名長度不超過40, 性別長度為1, 地址長度不超過40

【輸入】

輸入包括若幹行,每一行都是一個學生的信息,如:
00630018 zhouyan m 20 10.0 28#460
輸入的最後以"end"結束

【輸出】

輸出將輸入的內容倒序輸出
每行一條記錄,按照
學號 姓名 性別 年齡 得分 地址
的格式輸出

【水題一枚】建一個雙向鏈表,倒著輸出。

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4
#include<algorithm> 5 #include<cmath> 6 using namespace std; 7 struct stu 8 { 9 char num[25], name[45], sex, scr[45];  //score也要用字符串!賊坑!調了我20分鐘! 10 int age; 11 char addr[45]; 12 bool scan() 13 { 14 scanf("%s", num); 15 if(strcmp(num, "end") == 0) return
true; 16 scanf("%s %c", name, &sex); 17 scanf("%d %s %s", &age, scr, addr); 18 return false; 19 } 20 void print() 21 { 22 printf("%s %s %c ", num, name, sex); 23 printf("%d %s %s\n", age, scr, addr); 24 } 25 }; 26 struct node 27 { 28 stu data;
29 node *pre, *next; 30 }*head, *tail, *p; 31 int main() 32 { 33 head = new node; 34 head -> next = NULL; 35 head -> pre = NULL; 36 tail = head; 37 while(1) 38 { 39 40 p = new node; 41 if(p -> data.scan()) break; 42 p -> pre = tail; 43 tail -> next = p; 44 p -> next = NULL; tail = p; 45 } 46 p = tail; 47 while(p != head) 48 { 49 p -> data.print(); 50 p = p -> pre; 51 } 52 return 0; 53 }

統計學生信息(使用鏈表完成)