统计学生信息(使用链表完成)

题目链接:http://ica.openjudge.cn/struct/3/

总时间限制: 1000ms  内存限制: 65536kB
描述

利用动态链表记录从标准输入输入的学生信息(学号、姓名、性别、年龄、得分、地址)

其中,学号长度不超过20, 姓名长度不超过40, 性别长度为1, 地址长度不超过40

输入
包括若干行,每一行都是一个学生的信息,如:
00630018 zhouyan m 20 10.0 28#460
输入的最后以"end"结束
输出
将输入的内容倒序输出
每行一条记录,按照
学号 姓名 性别 年龄 得分 地址
的格式输出
样例输入
00630018 zhouyan m 20 10 28#4600
0063001 zhouyn f 21 100 28#460000
0063008 zhoyan f 20 1000 28#460000
0063018 zhouan m 21 10000 28#4600000
00613018 zhuyan m 20 100 28#4600
00160018 zouyan f 21 100 28#4600
01030018 houyan m 20 10 28#4600
0630018 zuyan m 21 100 28#4600
10630018 zouan m 20 10 28#46000
end
样例输出
10630018 zouan m 20 10 28#46000
0630018 zuyan m 21 100 28#4600
01030018 houyan m 20 10 28#4600
00160018 zouyan f 21 100 28#4600
00613018 zhuyan m 20 100 28#4600
0063018 zhouan m 21 10000 28#4600000
0063008 zhoyan f 20 1000 28#460000
0063001 zhouyn f 21 100 28#460000
00630018 zhouyan m 20 10 28#4600

这个题目主要是输入格式不明确,我也不知道测试数据到底要什么样的格式才对。

下面的代码来自网络,可以ac

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 struct node
 4 {
 5     string st;
 6     struct node *pre;
 7 };
 8 
 9 int main()
10 {
11     int i;
12     string s;
13     struct node *head,*t;
14     head=new struct node;
15 
16     getline(cin,s); 
17     head->st=s; 
18     head->pre=NULL;
19     t=head;
20 
21     while (true)
22     {
23         getline(cin,s);
24         if (s=="end"){ break; }
25         head=new struct node;
26         head->st=s;
27         head->pre=t;
28         t=head; 
29     }
30 
31     head=new struct node;
32     head->pre=t;
33 
34     while (head->pre!=NULL)
35     {
36         head=head->pre;
37         cout<<head->st<<endl;    
38     }
39     return 0;
40 }

下面的偷懒的代码就是不行,我也不懂到底什么情况了

 1 #include<stdio.h>
 2 #include<string.h>
 3 int main(int argc, char *argv[])
 4 {
 5     char stuInfo[200];
 6     while(1)
 7     {
 8         gets(stuInfo);
 9         if(strcmp(stuInfo,"end")==0) break;
10         printf("%s
",stuInfo);
11     }
12     return 0;
13 }