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