Ho modificato il codice così:
codice:
#include <stdio.h>
#include <ctype.h>
#define MAX_ELE 100
main()
{
int i,n;
char v[MAX_ELE];
printf("\n// Il programma permette di caricare un vettore di caratteri\n// e se l'elemento digitato è gia presente nel vettore\n// verrà chiesto di digitarlo di nuovo.\n\n");
do {
printf("numero di elementi(massimo 100): ");
scanf("%d",&n);
} while(n<1 || n>MAX_ELE);
printf("\n");
fflush(stdin);
printf("CARICAMENTO DEL VETTORE\n")
for(i=0;i<n;i++) {
short int repeat;
do {
repeat=0;
int j;
printf("inserisci un carattere stampabile: ");
scanf("%c",&v[i]);
while(getc(stdin)!= '\n');
for(j=0;j<i && !repeat;j++)
if (v[i] == v[j]) {
printf("l'elemento è già presente, inserire nuovamente un carattere stampabile: ");
scanf("%c",&v[i]);
repeat=1;
}
} while(repeat || isprint(v[i])==0);
}
}
può andar bene così?