Para solucionar el caso 3, en la comparación que realizas entre el color buscado y los almacenados en "colores" quita el "break;" del bucle, y suma 1 a un contador por cada validación correcta, luego usas el contador así: "printf(" existen: %d", cont);
Eso te dará la cantidad.
char colores[5][100],buscar[100];
int posicion=0,contador=0,x,y;
int op;
// CONTADOR
int cont = 0;
char exit;
case 3://consulta particular
posicion=-1;
printf("consultar color especifico y cuantos hay: ");
scanf("%s",buscar);
for(x=0;x<contador;x++)
{
if(strcasecmp(buscar,colores[x])==0)
{
cont++;
posicion=x;
}
}
if(posicion!=-1)
{
printf(" color corecto: \n");
printf (" existen %d %s\n",cont, buscar);
cont = 0;
}
else
printf("El color no existe \n");
break;
Tras mostrar la cantidad vuelves a poner el contador a 0 para poder volver a usarlo.
El caso 6 es muy sencillo, simplemente utiliza "return 0;" así saldrá del programa.
case 6:
return 0;
break;
Con el caso 5 no puedo ayudarte, nunca he hecho nada así y menos en C, yo soy de C++.
Espero haberte ayudado.
Saludos!