統計學生信息(使用鏈表完成)
阿新 • • 發佈:2018-01-22
雙向鏈表 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) returntrue; 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 }
統計學生信息(使用鏈表完成)