View Code of Problem 83

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct student{
	int num;
	
	int score;
	struct student *next;
}student;
void main(){
	void sort(student *LA,student *LB);
	int n,m;
	scanf("%d %d",&n,&m);
	student *LA,*LB,*s,*p;
	LA=(student *)malloc(sizeof(student));
	LB=(student *)malloc(sizeof(student));
	LA->next=LB->next=NULL;
	p=LA;
	while(n--){
		s=(student *)malloc(sizeof(student));
		scanf("%d %d",&s->num,&s->score);
		s->next=NULL;
		p->next=s;
		p=s;
	}
	p=LB;
	while(m--){
		s=(student *)malloc(sizeof(student));
		scanf("%d %d",&s->num,&s->score);
		s->next=NULL;
		p->next=s;
		p=s;
	}
	sort(LA,LB);
	for(p=LA->next;p->next!=NULL;p=p->next){
		printf("%d %d\n",p->num,p->score);
	}
	printf("%d %d\n",p->num,p->score);
}
void sort(student *LA,student *LB){
	student *pre,*p,*minpre,*min,*s,*pres,*temp;
	int a,b;
	char c[20]={'\0'};
	for(p=LA->next;p->next!=NULL;p=p->next);
	p->next=LB->next;
	free(LB);
	for(pre=LA;pre->next!=NULL;pre=pre->next){
		p=pre->next;
		s=p;
		pres=pre;
		min=p;
		minpre=pre;
		for(;s!=NULL;pres=s,s=s->next){
			if(s->num<min->num){
				min=s;
				minpre=pres;
			}
		}
		a=p->num;
		p->num=min->num;
		min->num=a;
		b=p->score;
		p->score=min->score;
		min->score=b;
		
	}	
}

Double click to view unformatted code.


Back to problem 83