Code:
#include <stdio.h>
#include <conio.h>

struct so
{
    int giatri;
    so *tiep;
};

void nhap(int n, so *&dau)
{
    int i, x;
    so *cuoi = new so;
    so *hientai = new so;
    printf("x1: ");
    scanf("%d", x);
    hientai->giatri = x;
    hientai->tiep = NULL;
    cuoi = dau = hientai;
    for (i = 2; i <= n; i++)
    {
    	print("x" + i + ": ");
        hientai = new so;
        scanf("%d", hientai->giatri);
        hientai->tiep = NULL;
        cuoi->tiep = hientai;
        cuoi = hientai;
    }
}

so* nhan_giatri(int i, so *dau)
{
    so *p = dau;
    int k = 1;
    while (k < i)
    {
        k++;
        p = p->tiep;
    }
    return p;
}

void nhapgiatri(so *dau, int vitri, int giatri)
{
    so *p = dau;
    int k = 1;
    while (k < vitri)
    {
        k++;
        p = p->tiep;
    }
    p->giatri = giatri;
}

void gan2dayso(int n1, so *dau1, so* dau2)
{
    so *p1 = nhan_giatri(n1, dau1);
    p1->tiep = dau2;
}

void sapxep(so *dau, int n)
{
    for (int i = 0; i < n - 1; ++i)
    {
        so *soi = nhan_giatri(i+1, dau);
        for (int j = i + 1; j < n; ++j)
        {
            so *soj = nhan_giatri(j+1, dau);
            if (soi->giatri > soj->giatri)
            {
                int tg;
                tg = soi->giatri;
                nhapgiatri(dau, i+1, soj->giatri);
                nhapgiatri(dau, j+1, tg);
            }
        }
    }
}

void inso(so *dau)
{
    so *p = dau;
    do
    {
        cout << p->giatri << ' ';
        p = p->tiep;
    }
    while (p!=NULL);
}

int main()
{
    int n1, n2;
    so *sodau_day1 = new so, *sodau_day2 = new so;
    printf("Nhap so phan tu cua day 1: ");
    scanf("%d", n1);
    nhap(n1, sodau_day1);
    printf("Nhap so phan tu cua day 2: ");
    canf("%d", n2);
    nhap(n2, sodau_day2);
    gan2dayso(n1, sodau_day1, sodau_day2);
    sapxep(sodau_day1, n1+n2);
    inso(sodau_day1);
    free(sodau_day1);
    free(sodau_day2);
    getch();
}
Code của mình đang bị lỗi ở chỗ struct mọi người giúp đỡ với