Program to implement Cyclic Redundancy Check,CRC-16

#include<conio.h>
#include<string.h>
#include<dos.h>
#include<stdlib.h>
int copy();
int check();
int i, j, k, t, count = 0, num = 0;
int gen[10], frame[30], rem[30], temp[30];
void main()
{
    char c, plym[50];
    char ch[]={'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
    clrscr();
    printf("\t\t\t***CYCLIC REDUNDANCY CHECK-12***\n\n\n");
    for(i = 0; i < 50; i++)
    plym[i] = '\0';
    for(i = 0; i < 30; i++)
    temp[i] = rem[i] = frame[i] = '\0';
    for(i = 0; i < 10; i++)
    gen[i] = '\0';
    printf("enter the polynomial: ");
    gets(plym);
    plym[strlen(plym)] = ' ';
    for(i = 0; i < strlen(plym); i++)
    {
        if(plym[i] == 'x')
        {
            i++;
            for(;plym[i] != '+'; count, i++)
            {
            }
            if(count == 3)
            {
                for(i = i - 1, j = 3; j <= 9; j++)
                if(plym[i] == ch[j])
                {
                    printf("\Enter the polynomial's");
                    printf("degree is high");
                    getch(); exit(0);
                }
                for(j = 0, num = 10; j <= 2; j++)
            if(plym[i] == ch[j])
            {
                num=num + j;
                frame[num] = 1;
            }
        }
        if(count == 2)
        {
            for(i = i - 1, j = 1, num = 0; j <= 9; j++)
            if(plym[i] == ch[j])
            num = j;
            frame[num] = 1;
        }
        if(count == 0)
        frame[1] = 1;
        count = 0;
    } 
    else if(plym[i] == '1')
    frame[0] = 1;
    }
    printf("FRAME is: ");
    for(i = 12, j = 0; i >= 0; i--, j++)
    {
        temp[j] = frame[i];
        printf("%d", frame[i]);
    }
    printf("\n\n\n>>>>both high & low orders");
    printf("bits of GENERATOR must be 1<<<<");
    printf("\n enter the generator: ");
    for(num = i = 0; (c = getchar()) != '\n'; i++, num++)
    {
        if(c == '1')
        gen[i] = 1;
        else if(c == '0')
        gen[i] = 0;
        else
        {
            printf("\n Enter the GENERATOR");
            printf("is other then 0 or 1");
            getch(); exit(0);
        }
    }
    for(j = 13,i = i - 1; i > 0; i--, j++)
    temp[j] = 0;
    printf("\n\n FRAME after appending 0's: ");
    copy(); check();
    printf("\n The REMAINDER is: ");
    for(i = 13; i < j; i++)
    {
        temp[i] = rem[i];
        printf("%d", rem[i]);
    }
    printf("\n\n\n Transmitting FRAME......");
    delay(10000);
    printf("\n\n\n Transmitted FRAME is: ");
    copy(); check();
    printf("\n frame recieved");
    printf("\n\n\n checking for errors......");
    delay(10000);
    printf("\n\n\n recieved frame is: ");
    copy(); check();
    printf("\n the remainder is: ");
    for(i = 13; i < j; i++)
    printf("%d", rem[i]);
    printf("\n DATA SENT SUCCESSFULLY");
    getch();
}
check()
{
    for(i = 0; i <= 12; i++)
    {
        if(rem[i] == 0)
        continue;
        else
        {
            for(k = 0, t = i; k < num; k++, t++)
            {
                if(rem[t] == 1 && gen[k] == 1)
                rem[t] = 0;
                else if(rem[t] == 0 && gen[k] == 0)
                rem[t] = 0;
                else if(rem[t] == 1 && gen[k] == 0)
                rem[t] = 1;
                else if(rem[t] == 0 && gen[k] == 1)
                rem[t] = 1;
            }
        }
    }
    return 0;
}
copy()
{
    for(i = 0; i < j; i++)
    {
        printf("%d", temp[i]);
        rem[i] = temp[i];
    }
    return 0;
}

Output:

***CYCLIC REDUNDANCY CHECk-16***

Enter the polynomial: x^15 x^8 x^7 x^5 x^3 x^2 1
FRAME is: 01000000110101101

>>>>both high & low ordersbits of GENERATOR must be 1<<<<
Enter the generator: 10011
FRAME after appending 0's: 010000001101011010000
The REMAINDER is: 1100

Transmitting frame......
TRANSMITTED FRAME is: 010000001101011011100
frame RECEIVED

Checking for ERRORS......
Recieved Frame is: 010000001101011011100
The REMAINDER is: 0000
DATA SENT SUCCESSFULLY