View Code of Problem 83

#include <stdio.h>
#include <stdlib.h>
struct Stu
{
   int num;
   int score;
   struct Stu *next;
};
void input(struct Stu *s,int n)
{
    int i;
    struct Stu *p;
    for(p=s,i=0;p<s+n;p++,i++)
    {
        scanf("%d%d",&p->num,&p->score);
        if(i!=n-1)
        {
            p->next=&s[i+1];
        }
        else
        {
            p->next=NULL;
        }
    }

}
void print(struct Stu *s)
{
    struct Stu *p;
    for(p=s;p!=NULL;p=p->next)
    {
        printf("%d %d\n",p->num,p->score);
    }
}
struct Stu *R(struct Stu *s1,struct Stu *s2,int m)
{
    s1[m-1].next=s2;
    struct Stu *p,*q,temp;
    for(p=s1;p!=NULL;p=p->next)
    {
        for(q=p->next;q!=NULL;q=q->next)
        {
            if(p->num>q->num)
            {
                temp.num=p->num;
                p->num=q->num;
                q->num=temp.num;
                temp.score=p->score;
                p->score=q->score;
                q->score=temp.score;
            }
        }
    }
    return s1;
}
int main()
{
    int N,M;
    scanf("%d%d",&N,&M);
    struct Stu a[N],b[M];
    input(a,N);
    input(b,M);
    print(R(a,b,N));

    return 0;
}

Double click to view unformatted code.


Back to problem 83