No necesariamente ya que podes usar stdin:
Código:
char line[80];
memset(line, 0, sizeof(line));
fgets(line, sizeof(line), stdin);
sscanf(line, "%d", &valoresd[i]);
De esta manera obvias el uso de scanf que deja
basura en el buffer y no hace falta ningun tipo de funcion de
limpieza del mismo. Ademas de pasar el tamaño del buffer para la funcion de entrada que es mucho mas seguro ...