
#include #include #include struct node@H_419_2@ {@H_419_2@ char name[11];@H_419_2@ struct node*next;@H_419_2@ };@H_419_2@ int main()@H_419_2@ {@H_419_2@ int n,m,a,x;//n为学生总人数,m为课程总数@H_419_2@ char str[12];@H_419_2@ scanf("%d%d",&n,&m);@H_419_2@ struct node*p,*q;@H_419_2@ struct node*head[2001];//存储每门课学生姓名@H_419_2@ int i;@H_419_2@ for(i=1;i<=2000;i++)@H_419_2@ {@H_419_2@ head[i]=(struct node*)malloc(sizeof(struct node));@H_419_2@ head[i]->next=NulL;//初始化 目前没有学生@H_419_2@ }@H_419_2@ int num[2001];//存储选修每门课的人数@H_419_2@ memset(num,sizeof(num));@H_419_2@ while(n--)@H_419_2@ {@H_419_2@ scanf("%s %d",str,&a);//s为姓名,a为此学生选课总数@H_419_2@ while(a--)//a个课程编号@H_419_2@ {@H_419_2@ scanf("%d",&x);@H_419_2@ num[x]++;//次门课选修人数纪录@H_419_2@ p=head[x];@H_419_2@ q=(struct node*)malloc(sizeof(struct node));@H_419_2@ strcpy(q->name,str);@H_419_2@ while(p->next)@H_419_2@ {@H_419_2@ if(strcmp(q->name,p->next->name)<0)@H_419_2@ break;@H_419_2@ p=p->next;@H_419_2@ }@H_419_2@ q->next=p->next;@H_419_2@ p->next=q;@H_419_2@ }@H_419_2@ }@H_419_2@ for(i=1;i<=m;i++)@H_419_2@ {@H_419_2@ printf("%d %dn",i,num[i]);@H_419_2@ p=head[i]->next;@H_419_2@ while(p)@H_419_2@ {@H_419_2@ printf("%sn",p->name);@H_419_2@ p=p->next;@H_419_2@ }@H_419_2@ }@H_419_2@ return 0;@H_419_2@ }@H_419_2@ 总结 以上是内存溢出为你收集整理的数据结构实验之排序七:选课名单全部内容,希望文章能够帮你解决数据结构实验之排序七:选课名单所遇到的程序开发问题。 如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。 欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)