【问题描述】定义一个包含学生某门课程成绩信息(学号、成绩)的单链表,读入相应的成绩数据来完成学生成绩信息表的创建。然后,逐行输出每个学生的成绩信息。
【输入形式】输入1行,包括3位同学的成绩信息(学号、成绩)。学号、成绩之间用半角逗号“,”分隔,相邻同学的成绩信息用空格分隔。其中学号取最后三位,成绩为整数类型。
【输出形式】总计输出3行,每个学生成绩信息占一行,学号、成绩用半角逗号“,”分隔,其中学号取后三位。
【样例输入】201,98 202,94 203,89
【样例输出】
[num=201,score=98]
[num=202,score=94]
[num=203,score=89]
【样例说明】输入三组学生成绩数据,创建一个单链表,并输出。
【评分标准】存储结构采用单链表,否则得零分。
#include<cstdio> #include<cstdlib> #include<iostream> using namespace std; typedef struct Node { int num; int score; struct Node *next; }Node; int main() { Node *head=(Node*)malloc(sizeof(Node)); head->next=NULL; Node *ne,*tail=head; string r; int a[5][3]; scanf("%d,%d %d,%d %d,%d",&a[1][1],&a[1][2],&a[2][1],&a[2][2],&a[3][1],&a[3][2]); for(int i=1;i<=3;i++) { if(a[i][1]>999) { a[i][1]%=1000; } ne=(Node*)malloc(sizeof(Node)); ne->num=a[i][1]; ne->score=a[i][2]; tail->next=ne; tail=ne; } tail->next=NULL; for(Node *i=head;i->next!=NULL;i=i->next) { printf("[num=%03d,score=%d]\n",(i->next)->num,(i->next)->score); } }