Ciao a tutti..questo programma deve prendere in ingresso 10 elementi per il controllo del codice ISBN.
I primo 9 sono numeri mentre il decimo può anche essere una "X" che equivale alla cifra "10".
Il decimo carattere è un carattere di controllo.
Ho fatto questo programmino qualche anno fa ma ora compilandolo mi da un problema nella parte di inserimento degli elementi.
Ricordo di aver fatto in questo modo ma non ricordo più la funzione fflush.
Potete aiutarmi?

codice:
#include <stdio.h>
#include <stdlib.h>
#define N 10

int main()
{
    char isbn[ N ];
    int s1[ N ];
    int s2[ N ];
    int i, verifica;
    char car;

    printf("Inserisci il codice ISBN di 10 cifre\n");

    for ( i = 0; i < N; i++ ) {

        scanf("%c", &car);
        fflush(stdin);

        if ( car == 'X' ) {
        isbn[i] = 10;
        }
        else {
            isbn[i] = car - '0';
        }
    }


    printf("\n\n");

    printf("Il codice ISBN è : ");

    for ( i = 0; i < 10; i++ ) {
        printf("%d\t", isbn[i] );

    }
    s1[0] = isbn[0];
    for ( i = 1; i < N; i++ ) {
        s1[i] = s1[i - 1] + isbn[i];
    }
    printf("\n\n");

    printf("Il vettore s1 è :\n");

    for ( i = 0; i < N; i++ ) {
        printf("%d\t", s1[i] );

    }

    s2[0] = s1[0];
    for (i = 1; i < N; i++) {
        s2[i] = s2[ i - 1] + s1[i];
    }

    printf("\n\n");
    printf("Il vettore s2 è :\n");

    for (i = 0; i < N; i++ ) {
        printf("%d\t", s2[i] );
    }

    printf("\n\n");

    verifica = s2[9] % 11;

    if ( verifica == 0 ) {
        printf("\nLa verifica è andata a buon fine\n");
    }
    else {
        printf("\nERRORE: La verifica NON  è andata a buon fine\n");
    }


    return 0;
}