Q:

A couple of chars are not printing

I am learning C programming! I am trying to write a program
but some things dont work as they should!
Here is the code and i will explain below!
 #include <stdio.h>
#define _CRT_SECURE_NO_WARNINGS

int main(void)
{
    int afm, date, month, year,code;
    char name_in, surn_in, slash, category;
    float income, tax;
    do {
        printf("Give afm : "); /*Give a 10 digit number*/
        scanf("%d", &afm);
        if (afm < 1000000000 || afm > 9999999999) {
            printf("Incorrect!\n");
        }
    } while (afm < 1000000000 || afm > 9999999999);
        fflush(stdin);
        printf("Give your name's first letter: ");
        scanf("%c", &name_in);
        getchar();
        printf("Give surname's first letter: ");
        scanf("%c", &surn_in);
        getchar();

    do
        {
        printf("Date of birth(must be at least 18) : ");
        scanf("%d%c%d%c%d", &date, &slash, &mhnas, &slash, &etos); /*just write 20/10/1987 */
        if (month < 1 || month>12) {
            printf("Incorrect month. \n");
        }
        if (year > 1997) {
            printf("Year incorrect \n");
        if (2015 - year == 18 && month==12 ) {
            printf("Incorrect date of birth.\n");

            }
        }
    } while ((month < 1 || month>12) || (year > 1997) || (2015 - year == 18 && mhnas == 12));
    printf("Add your income ");
    scanf("%f", &income);

    code = afm % 10; /*need to find the afm's last digit*/

    if (code == 1 || code == 2 || code == 3) {
        category = "Misthwtos";
        if (income <= 10000) {
            tax = 0;
        }
        if (income > 10000 && income <= 30000) {
            tax = (eisodhma - 10000) * 20 / 100;
        }
        if (income > 30000)
            tax = (20000 * 20 / 100) + ((eisodhma - 30000) * 30 / 100);
    }

    if (code != 1 || code != 2 || code != 3) {
        tax = income * 30 / 100;
    }

    printf("Info: \n");
    printf("%d %c.%c. &d/%d/%d",afm, name_in, surn_in, date, month, year);

    system("pause");
    return 0;
}

So, the problem is that, when the program prints what I ask at the end of the code, it print everything except the characters name_in and surn_in. I can't find a solution, can you help me?
PS. I am coding in Visual Studio

A:

afm > 9999999999 is always false for int afm.  On your platform, int and long are 32 bits long, therefore limited to values less than 2147483647.
You should use type long long for these variables.
Parse them with scanf format %lld
fflush(stdin); invokes undefined behaviour.  You probably want to get rid on any type ahead from the user: this cannot be done portably in C, and is of dubious value anyway.
tax = (eisodhma - 10000) * 20 / 100; refers to an undefined variable.  Did you mean tax = (income - 10000) * 20 / 100;?
scanf("%c", &name_in); does not read the next character, it reads the '\n' that is bufferized in the standard input.  To skip spaces, chux suggests this simple fix:
scanf(" %c", &name_in);

Most importantly:
if (code != 1 || code != 2 || code != 3)

is always true.  You really mean this:
if (code != 1 && code != 2 && code != 3)

