Ciao a tutti, ho bisogno del vostro aiuto, non sono molto esperto in programmazione in C, ma sto
imparando.

Oggi stavo cercando di fare un programma che utilizza un vettore formato dai numeri da 1 a 15 ordinati casualmente e non capisco cosa ci sia di sbagliato nel mio sorgente.

codice:
#include <stdio.h>
#include <stdlib.h>


int main()
{
    int i , j, flag, ran;
    int x[16];
    i=0; j=0;
    flag=1;
    while (i<16){
        do {
            flag=1;
            ran=rand() % 15 + 1;
            x[i]=ran;
            for(j=0;j<i;j++){
                if(x[j]==x[i]){
                    flag=0;


                     }
             }


         } while (flag==0);
    i++;
    printf("%d \t %d\n", x[i],ran);
    }


    for(i=0;i<=15;i++){
    printf("%d", x[i]);
    }

    return 0;
}
Il mio problema e' che non stampa a schermo con il printf finale il vettore e non so perché.

Nell'ultima parte del primo ciclo while ho inserito un printf per vedere il valore di 'ran' e del vettore e, sorprendentemente, i valori di 'ran' sono tutti i numeri da 1 a 15 ordinati casualmente (come cercavo), ma i valori di x[i] sono numeri che non c'entrano nulla col programma. A dire il vero credo che se non salvasse i numeri nel vettore non dovrebbe nemmeno funzionare l'"if" che invece funge perfettamente.

So che il programma è lontano dall'essere sintetico e perfettamente funzionale, ma per ora mi basta che sia funzionale. Grazie mille a tutti